#include "keymap.h"
#include "buildobj.h"
-#ifdef HAVE_INDEX
-extern char *index P_ ((const char *, int));
-#endif
-
Lisp_Object Vdoc_file_name;
Lisp_Object Qfunction_documentation;
/* A list of files used to build this Emacs binary. */
static Lisp_Object Vbuild_files;
-extern Lisp_Object Voverriding_local_map;
-
-extern Lisp_Object Qremap;
-
/* Buffer used for reading from documentation file. */
static char *get_doc_string_buffer;
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;
if (!nread)
break;
if (p == get_doc_string_buffer)
- p1 = (char *) index (p + offset, '\037');
+ p1 = strchr (p + offset, '\037');
else
- p1 = (char *) index (p, '\037');
+ p1 = strchr (p, '\037');
if (p1)
{
*p1 = 0;
to - (get_doc_string_buffer + offset));
else
{
- /* Let the data determine whether the string is multibyte,
- even if Emacs is running in --unibyte mode. */
+ /* The data determines whether the string is multibyte. */
int nchars = multibyte_chars_in_text (get_doc_string_buffer + offset,
to - (get_doc_string_buffer + offset));
return make_string_from_bytes (get_doc_string_buffer + offset,
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];
doc: /* Return the documentation string of FUNCTION.
Unless a non-nil second argument RAW is given, the
string is passed through `substitute-command-keys'. */)
- (function, raw)
- Lisp_Object function, raw;
+ (Lisp_Object function, Lisp_Object raw)
{
Lisp_Object fun;
Lisp_Object funcar;
This differs from `get' in that it can refer to strings stored in the
`etc/DOC' file; and that it evaluates documentation properties that
aren't strings. */)
- (symbol, prop, raw)
- Lisp_Object symbol, prop, raw;
+ (Lisp_Object symbol, Lisp_Object prop, Lisp_Object raw)
{
int try_reload = 1;
Lisp_Object tem;
/* 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);
it specifies the file name (without a directory) of the DOC file.
That file is found in `../etc' now; later, when the dumped Emacs is run,
the same file name is found in the `doc-directory'. */)
- (filename)
- Lisp_Object filename;
+ (Lisp_Object filename)
{
int fd;
char buf[1024 + 1];
p = buf;
end = buf + (filled < 512 ? filled : filled - 128);
while (p != end && *p != '\037') p++;
- /* p points to ^_Ffunctionname\n or ^_Vvarname\n. */
+ /* p points to ^_Ffunctionname\n or ^_Vvarname\n or ^_Sfilename\n. */
if (p != end)
{
- end = (char *) index (p, '\n');
+ end = strchr (p, '\n');
/* See if this is a file name, and if it is a file in build-files. */
- if (p[1] == 'S' && end - p > 4 && end[-2] == '.'
- && (end[-1] == 'o' || end[-1] == 'c'))
+ if (p[1] == 'S')
{
- int len = end - p - 2;
- char *fromfile = alloca (len + 1);
- strncpy (fromfile, &p[2], len);
- fromfile[len] = 0;
- if (fromfile[len-1] == 'c')
- fromfile[len-1] = 'o';
-
- skip_file = NILP (Fmember (build_string (fromfile),
- Vbuild_files));
+ skip_file = 0;
+ if (end - p > 4 && end[-2] == '.'
+ && (end[-1] == 'o' || end[-1] == 'c'))
+ {
+ int len = end - p - 2;
+ char *fromfile = alloca (len + 1);
+ strncpy (fromfile, &p[2], len);
+ fromfile[len] = 0;
+ if (fromfile[len-1] == 'c')
+ fromfile[len-1] = 'o';
+
+ skip_file = NILP (Fmember (build_string (fromfile),
+ Vbuild_files));
+ }
}
sym = oblookup (Vobarray, p + 2,
}
pos += end - buf;
filled -= end - buf;
- bcopy (end, buf, filled);
+ memmove (buf, end, filled);
}
emacs_close (fd);
return Qnil;
Returns original STRING if no substitutions were made. Otherwise,
a new string, without any text properties, is returned. */)
- (string)
- Lisp_Object string;
+ (Lisp_Object string)
{
unsigned char *buf;
int changed = 0;
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. */
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_c_string ("function-documentation");
staticpro (&Qfunction_documentation);