From: Richard M. Stallman Date: Tue, 15 Feb 2005 06:36:17 +0000 (+0000) Subject: (Fsubstitute_command_keys): Compute list of shadowing maps X-Git-Tag: ttn-vms-21-2-B4~2285 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e679a3c1d50168cffb09f8a8f9128f8fdc07b355;p=emacs.git (Fsubstitute_command_keys): Compute list of shadowing maps for describe_map_tree. Pass 1 for MENTION_SHADOWS. --- diff --git a/src/doc.c b/src/doc.c index f306caed36a..0d1ab394647 100644 --- a/src/doc.c +++ b/src/doc.c @@ -882,6 +882,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 +935,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);