X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/9f77d2aaefd4301e49d9c2dcce5475dfbed1fc63..4e186ad5f30dc95313dbb1b0dbc64c80316834aa:/src/doc.c diff --git a/src/doc.c b/src/doc.c index f306caed36..6d54aeceac 100644 --- a/src/doc.c +++ b/src/doc.c @@ -1,6 +1,6 @@ /* Record indices of function doc strings stored in a file. - Copyright (C) 1985, 86,93,94,95,97,98,99,2000,04 - Free Software Foundation, Inc. + Copyright (C) 1985, 1986, 1993, 1994, 1995, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004, 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -16,8 +16,8 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to -the Free Software Foundation, Inc., 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +Boston, MA 02110-1301, USA. */ #include @@ -58,26 +58,24 @@ static Lisp_Object Vbuild_files; extern Lisp_Object Voverriding_local_map; /* For VMS versions with limited file name syntax, - convert the name to something VMS will allow. */ + convert the name to something VMS will allow. */ static void munge_doc_file_name (name) char *name; { #ifdef VMS -#ifndef VMS4_4 - /* For VMS versions with limited file name syntax, - convert the name to something VMS will allow. */ - p = name; +#ifndef NO_HYPHENS_IN_FILENAMES + extern char * sys_translate_unix (char *ufile); + strcpy (name, sys_translate_unix (name)); +#else /* NO_HYPHENS_IN_FILENAMES */ + char *p = name; while (*p) { if (*p == '-') *p = '_'; p++; } -#endif /* not VMS4_4 */ -#ifdef VMS4_4 - strcpy (name, sys_translate_unix (name)); -#endif /* VMS4_4 */ +#endif /* NO_HYPHENS_IN_FILENAMES */ #endif /* VMS */ } @@ -607,21 +605,7 @@ the same file name is found in the `doc-directory'. */) strcpy (name, SDATA (Vdoc_directory)); } strcat (name, SDATA (filename)); /*** Add this line ***/ -#ifdef VMS -#ifndef VMS4_4 - /* For VMS versions with limited file name syntax, - convert the name to something VMS will allow. */ - p = name; - while (*p) - { - if (*p == '-') - *p = '_'; - p++; - } -#else /* VMS4_4 */ - strcpy (name, sys_translate_unix (name)); -#endif /* VMS4_4 */ -#endif /* VMS */ + munge_doc_file_name (name); /* Vbuild_files is nil when temacs is run, and non-nil after that. */ if (NILP (Vbuild_files)) @@ -882,6 +866,9 @@ thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ int { struct buffer *oldbuf; int start_idx; + /* This is for computing the SHADOWS arg for describe_map_tree. */ + Lisp_Object active_maps = Fcurrent_active_maps (Qnil); + Lisp_Object earlier_maps; changed = 1; strp += 2; /* skip \{ or \< */ @@ -932,7 +919,13 @@ thus, \\=\\=\\=\\= puts \\=\\= into the output, and \\=\\=\\=\\[ puts \\=\\[ int else if (start[-1] == '<') keymap = tem; else - describe_map_tree (tem, 1, Qnil, Qnil, (char *)0, 1, 0, 0); + { + /* Get the list of active keymaps that precede this one. + If this one's not active, get nil. */ + earlier_maps = Fcdr (Fmemq (tem, Freverse (active_maps))); + describe_map_tree (tem, 1, Fnreverse (earlier_maps), + Qnil, (char *)0, 1, 0, 0, 1); + } tem = Fbuffer_string (); Ferase_buffer (); set_buffer_internal (oldbuf);