Mercurial > hg > xemacs-beta
diff src/doc.c @ 14:9ee227acff29 r19-15b90
Import from CVS: tag r19-15b90
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:48:42 +0200 |
parents | ac2d302a0011 |
children | 859a2309aef8 |
line wrap: on
line diff
--- a/src/doc.c Mon Aug 13 08:48:18 2007 +0200 +++ b/src/doc.c Mon Aug 13 08:48:42 2007 +0200 @@ -155,7 +155,7 @@ case '_': *to++ = '\037'; break; default: return_me = list2 (build_string - ("Invalid data in documentation file -- ^A followed by weird code"), + ("Invalid data in documentation file -- ^A followed by weird code"), make_int (c)); goto done; } @@ -172,15 +172,15 @@ } #define string_join(dest, s1, s2) \ - memcpy ((void *) dest, (void *) XSTRING_data (s1), XSTRING_length (s1)); \ - memcpy ((void *) ((Bufbyte *) dest + XSTRING_length (s1)), \ - (void *) XSTRING_data (s2), XSTRING_length (s2)); \ - dest[XSTRING_length (s1) + XSTRING_length (s2)] = '\0' + memcpy ((void *) dest, (void *) XSTRING_DATA (s1), XSTRING_LENGTH (s1)); \ + memcpy ((void *) ((Bufbyte *) dest + XSTRING_LENGTH (s1)), \ + (void *) XSTRING_DATA (s2), XSTRING_LENGTH (s2)); \ + dest[XSTRING_LENGTH (s1) + XSTRING_LENGTH (s2)] = '\0' /* Extract a doc string from a file. FILEPOS says where to get it. (This could actually be byte code instructions/constants instead of a doc string.) - If it is an integer, use that position in the standard DOC-... file. + If it is an integer, use that position in the standard DOC file. If it is (FILE . INTEGER), use FILE as the file name and INTEGER as the position in that file. But if INTEGER is negative, make it positive. @@ -227,16 +227,11 @@ if (!STRINGP (Vdoc_directory)) return Qnil; - minsize = string_length (XSTRING (Vdoc_directory)); + minsize = XSTRING_LENGTH (Vdoc_directory); /* sizeof ("../lib-src/") == 12 */ if (minsize < 12) minsize = 12; - name_nonreloc - = (char *) alloca (minsize + string_length (XSTRING (file)) + 8); - /* - strcpy (name_nonreloc, (char *) string_data (XSTRING (Vdoc_directory))); - strcat (name_nonreloc, (char *) string_data (XSTRING (file))); - */ + name_nonreloc = (char *) alloca (minsize + XSTRING_LENGTH (file) + 8); string_join (name_nonreloc, Vdoc_directory, file); munge_doc_file_name (name_nonreloc); } @@ -244,29 +239,28 @@ name_reloc = file; fd = open (name_nonreloc ? name_nonreloc : - (char *) string_data (XSTRING (name_reloc)), O_RDONLY, 0); + (char *) XSTRING_DATA (name_reloc), O_RDONLY, 0); if (fd < 0) { #ifndef CANNOT_DUMP if (purify_flag) { - name_nonreloc /* sizeof ("../lib-src/") == 12 */ - = (char *) alloca (12 + string_length (XSTRING (file)) + 8); + name_nonreloc = (char *) alloca (12 + XSTRING_LENGTH (file) + 8); /* Preparing to dump; DOC file is probably not installed. So check in ../lib-src. */ strcpy (name_nonreloc, "../lib-src/"); - strcat (name_nonreloc, (char *) string_data (XSTRING (file))); + strcat (name_nonreloc, (char *) XSTRING_DATA (file)); munge_doc_file_name (name_nonreloc); fd = open (name_nonreloc, O_RDONLY, 0); } -#endif +#endif /* CANNOT_DUMP */ if (fd < 0) error ("Cannot open doc string file \"%s\"", name_nonreloc ? name_nonreloc : - (char *) string_data (XSTRING (name_reloc))); + (char *) XSTRING_DATA (name_reloc)); } tem = unparesseuxify_doc_string (fd, position, name_nonreloc, name_reloc); @@ -430,7 +424,7 @@ static void weird_doc (Lisp_Object sym, CONST char *weirdness, CONST char *type, int pos) { -#ifdef ENERGIZE /* hide kludgery... */ +#if defined(ENERGIZE) || defined(SUNPRO) /* hide kludgery... */ if (!strcmp (weirdness, GETTEXT ("duplicate"))) return; #endif message ("Note: Strange doc (%s) for %s %s @ %d", @@ -467,16 +461,16 @@ CHECK_STRING (filename); #ifndef CANNOT_DUMP - name = (char *) alloca (string_length (XSTRING (filename)) + 14); + name = (char *) alloca (XSTRING_LENGTH (filename) + 14); strcpy (name, "../lib-src/"); #else /* CANNOT_DUMP */ CHECK_STRING (Vdoc_directory); - name = (char *) alloca (string_length (XSTRING (filename)) - + string_length (XSTRING (Vdoc_directory)) + name = (char *) alloca (XSTRING_LENGTH (filename) + + XSTRING_LENGTH (Vdoc_directory) + 1); - strcpy (name, (char *) string_data (XSTRING (Vdoc_directory))); + strcpy (name, (char *) XSTRING_DATA (Vdoc_directory)); #endif /* CANNOT_DUMP */ - strcat (name, (char *) string_data (XSTRING (filename))); + strcat (name, (char *) XSTRING_DATA (filename)); #ifdef VMS #ifndef VMS4_4 /* For VMS versions with limited file name syntax, @@ -824,13 +818,13 @@ keymap = Voverriding_local_map; #endif - strlength = string_length (XSTRING (str)); + strlength = XSTRING_LENGTH (str); bsize = strlength; buf = (Bufbyte *) xmalloc (bsize); bufp = buf; /* Have to reset strdata every time GC might be called */ - strdata = string_data (XSTRING (str)); + strdata = XSTRING_DATA (str); for (idx = 0; idx < strlength; ) { Bufbyte *strp = strdata + idx; @@ -954,7 +948,7 @@ *b++ = '\n'; sprintf (b, GETTEXT ( "Uses keymap \"%s\", which is not currently defined."), - (char *) string_data (XSTRING (Fsymbol_name (name)))); + (char *) XSTRING_DATA (Fsymbol_name (name))); b += strlen (b); *b++ = '\n'; *b++ = 0; @@ -972,8 +966,8 @@ goto subst_string; subst_string: - start = string_data (XSTRING (tem)); - length = string_length (XSTRING (tem)); + start = XSTRING_DATA (tem); + length = XSTRING_LENGTH (tem); subst: bsize += length; new = (Bufbyte *) xrealloc (buf, bsize); @@ -983,7 +977,7 @@ bufp += length; /* Reset STRDATA in case gc relocated it. */ - strdata = string_data (XSTRING (str)); + strdata = XSTRING_DATA (str); break; }