/* Record indices of function doc strings stored in a file.
Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001,
- 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GNU Emacs.
#include <sys/types.h>
#include <sys/file.h> /* Must be after sys/types.h for USG*/
#include <ctype.h>
+#include <setjmp.h>
#ifdef HAVE_FCNTL_H
#include <fcntl.h>
#include "buildobj.h"
#ifdef HAVE_INDEX
-extern char *index P_ ((const char *, int));
+extern char *index (const char *, int);
#endif
Lisp_Object Vdoc_file_name;
static int get_doc_string_buffer_size;
static unsigned char *read_bytecode_pointer;
-Lisp_Object Fsnarf_documentation P_ ((Lisp_Object));
+Lisp_Object Fsnarf_documentation (Lisp_Object);
/* readchar in lread.c calls back here to fetch the next byte.
If UNREADFLAG is 1, we unread a byte. */
int
-read_bytecode_char (unreadflag)
- int unreadflag;
+read_bytecode_char (int unreadflag)
{
if (unreadflag)
{
and return a cons cell. */
Lisp_Object
-get_doc_string (filepos, unibyte, definition)
- Lisp_Object filepos;
- int unibyte, definition;
+get_doc_string (Lisp_Object filepos, int unibyte, int definition)
{
char *from, *to;
register int fd;
of a compiled function from the .elc file. */
Lisp_Object
-read_doc_string (filepos)
- Lisp_Object filepos;
+read_doc_string (Lisp_Object filepos)
{
return get_doc_string (filepos, 0, 1);
}
static int
-reread_doc_file (file)
- Lisp_Object file;
+reread_doc_file (Lisp_Object file)
{
#if 0
Lisp_Object reply, prompt[3];
/* Scanning the DOC files and placing docstring offsets into functions. */
static void
-store_function_docstring (fun, offset)
- Lisp_Object fun;
- /* Use EMACS_INT because we get this from pointer subtraction. */
- EMACS_INT offset;
+store_function_docstring (Lisp_Object fun, EMACS_INT offset)
+/* Use EMACS_INT because we get offset from pointer subtraction. */
{
fun = indirect_function (fun);
{
tem = Fcdr (Fcdr (fun));
if (CONSP (tem) && INTEGERP (XCAR (tem)))
- XSETCARFASTINT (tem, offset);
+ XSETCAR (tem, make_number (offset));
}
else if (EQ (tem, Qmacro))
store_function_docstring (XCDR (fun), offset);
if (len > 0)
Vbuild_files = Fcons (make_string (beg, len), Vbuild_files);
}
+ Vbuild_files = Fpurecopy (Vbuild_files);
}
fd = emacs_open (name, O_RDONLY, 0);
}
pos += end - buf;
filled -= end - buf;
- bcopy (end, buf, filled);
+ memcpy (buf, end, filled);
}
emacs_close (fd);
return Qnil;
if (multibyte)
{
int len;
- int maxlen = SDATA (string) + SBYTES (string) - strp;
- STRING_CHAR_AND_LENGTH (strp, maxlen, len);
+ STRING_CHAR_AND_LENGTH (strp, len);
if (len == 1)
*bufp = *strp;
else
- bcopy (strp, bufp, len);
+ memcpy (bufp, strp, len);
strp += len;
bufp += len;
nchars++;
int offset = bufp - buf;
buf = (unsigned char *) xrealloc (buf, bsize += 4);
bufp = buf + offset;
- bcopy ("M-x ", bufp, 4);
+ memcpy (bufp, "M-x ", 4);
bufp += 4;
nchars += 4;
if (multibyte)
int offset = bufp - buf;
buf = (unsigned char *) xrealloc (buf, bsize += length_byte);
bufp = buf + offset;
- bcopy (start, bufp, length_byte);
+ memcpy (bufp, start, length_byte);
bufp += length_byte;
nchars += length;
/* Check STRING again in case gc relocated it. */
else
{
int len;
- int maxlen = SDATA (string) + SBYTES (string) - strp;
- STRING_CHAR_AND_LENGTH (strp, maxlen, len);
+ STRING_CHAR_AND_LENGTH (strp, len);
if (len == 1)
*bufp = *strp;
else
- bcopy (strp, bufp, len);
+ memcpy (bufp, strp, len);
strp += len;
bufp += len;
nchars++;
}
\f
void
-syms_of_doc ()
+syms_of_doc (void)
{
- Qfunction_documentation = intern ("function-documentation");
+ Qfunction_documentation = intern_c_string ("function-documentation");
staticpro (&Qfunction_documentation);
DEFVAR_LISP ("internal-doc-file-name", &Vdoc_file_name,