GNU bug report logs - #4393
23.1; doc string of accessible-keymaps

Previous Next

Package: emacs;

Reported by: "Drew Adams" <drew.adams <at> oracle.com>

Date: Thu, 10 Sep 2009 23:40:16 UTC

Severity: normal

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 4393 in the body.
You can then email your comments to 4393 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4393; Package emacs. (Thu, 10 Sep 2009 23:40:18 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Drew Adams" <drew.adams <at> oracle.com>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Thu, 10 Sep 2009 23:40:18 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: <bug-gnu-emacs <at> gnu.org>
Subject: 23.1; doc string of accessible-keymaps
Date: Thu, 10 Sep 2009 16:31:14 -0700
emacs -Q
 
In *scratch* type this:
(accessible-keymaps (current-global-map))
 
Put point after the sexp, and do `C-u C-x C-e'.
 
You get the eval result inserted just after the sexp. The result has a
mouse-face property (highlight).
 
Put point at the beginning of the result (just after the initial
sexp). Hit RET - the display of the result changes between full and
abbreviated.
 
An aside: it took me a while to figure out what was happening, and why
RET didn't insert a newline here. (You can't use C-j to insert a
newline in *scratch*, so I'm in the habit of hitting RET.)
 
I wonder if something shouldn't be added to the doc for C-x C-e about
this. There is nothing that prepares the user for the effect
(highlighted sexp, hijacked mouse-2 behavior, so you can no longer
yank into the sexp, hijacked RET behavior, so you cannot shorten
lines, etc.). And there should be some explanation of how to turn OFF
this wonderful highlighting and RET/mouse-2 behavior.
 
Since it seems to be C-x C-e that has this effect, it is the doc of
C-x C-e that should cover this.
 
Anyway, on to the bug...
 
Search for [f2] in the result sexp. You'll find this:
([f2] . t). That's one of the entries in the alist returned by
`accessible-keymaps'.
 
There are two other entries with cdr = t: ([24 11] . t) and
([24 54] . t). All the other entries have a keymap as cdr.
 
However, the doc string of `accessible-keymaps' says this:
 
 "Returns a list of elements of the form (KEYS . MAP),
  where the sequence KEYS starting from keymap gets you to MAP."
 
You'll note that it doesn't tell you what MAP is. But you could
presume that MAP would be a keymap, since the doc string also says,
"Find all keymaps accessible...".
 
However, (keymapp t) returns nil; `t' is not a keymap. The doc needs
to make clear what MAP is. In particular, it needs to explain that it
is not necessarily a keymap. It should perhaps explain what `t' means
as a value for MAP, or at least point you to the manual section that
explains it (which section is it?).
 
I searched the Elisp manual for some possibility of a keymap being
just `t', but I didn't find anything related to this. The manual says
clearly that a keymap is a cons whose car is `keymap' and whose cdr...
`t' is not a cons with car `keymap'. The doc for `keymapp' says,
similarly, that a keymap must be a cons with car `keymap'.
 
So at a minimum there is a doc bug here (for `accessible-keymaps', at
least). I wonder too if there isn't a code bug - is it correct for the
MAP of an entry to be `t'?
 

In GNU Emacs 23.1.1 (i386-mingw-nt5.1.2600)
 of 2009-07-29 on SOFT-MJASON
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (4.4)'
 





Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4393; Package emacs. (Fri, 11 Sep 2009 02:15:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Fri, 11 Sep 2009 02:15:07 GMT) Full text and rfc822 format available.

Message #10 received at 4393 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 4393 <at> debbugs.gnu.org, <bug-gnu-emacs <at> gnu.org>
Subject: Re: bug#4393: 23.1; doc string of accessible-keymaps
Date: Thu, 10 Sep 2009 22:06:24 -0400
> (accessible-keymaps (current-global-map))
[...]
> Search for [f2] in the result sexp. You'll find this:
> ([f2] . t). That's one of the entries in the alist returned by
> `accessible-keymaps'.
> There are two other entries with cdr = t: ([24 11] . t) and
> ([24 54] . t). All the other entries have a keymap as cdr.
 
It turns out that these are prefixes bound to autoloaded keymaps that
haven't yet been loaded (and they also happen to be the same keymap).
`accessible-keymaps' does not autoload keymaps.  I guess it should
return ([f2] . 2C-command) and  ([24 54] . 2C-command).


        Stefan



Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4393; Package emacs. (Fri, 11 Sep 2009 02:40:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Fri, 11 Sep 2009 02:40:04 GMT) Full text and rfc822 format available.

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4393; Package emacs. (Fri, 11 Sep 2009 14:30:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Drew Adams" <drew.adams <at> oracle.com>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Fri, 11 Sep 2009 14:30:03 GMT) Full text and rfc822 format available.

Message #20 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: "'Stefan Monnier'" <monnier <at> iro.umontreal.ca>
Cc: <4393 <at> debbugs.gnu.org>, <bug-gnu-emacs <at> gnu.org>
Subject: RE: bug#4393: 23.1; doc string of accessible-keymaps
Date: Fri, 11 Sep 2009 07:23:53 -0700
> > (accessible-keymaps (current-global-map))
> [...]
> > Search for [f2] in the result sexp. You'll find this:
> > ([f2] . t). That's one of the entries in the alist returned by
> > `accessible-keymaps'.
> > There are two other entries with cdr = t: ([24 11] . t) and
> > ([24 54] . t). All the other entries have a keymap as cdr.
>  
> It turns out that these are prefixes bound to autoloaded keymaps that
> haven't yet been loaded (and they also happen to be the same keymap).
> `accessible-keymaps' does not autoload keymaps.  I guess it should
> return ([f2] . 2C-command) and  ([24 54] . 2C-command).

OK, so if I understand right, this is not a lack of explanation in the doc of
accessible-keymaps, but is a code bug that will be fixed.





Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4393; Package emacs. (Fri, 11 Sep 2009 14:30:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Drew Adams" <drew.adams <at> oracle.com>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Fri, 11 Sep 2009 14:30:05 GMT) Full text and rfc822 format available.

Reply sent to Stefan Monnier <monnier <at> iro.umontreal.ca>:
You have taken responsibility. (Fri, 11 Sep 2009 19:30:04 GMT) Full text and rfc822 format available.

Notification sent to "Drew Adams" <drew.adams <at> oracle.com>:
bug acknowledged by developer. (Fri, 11 Sep 2009 19:30:04 GMT) Full text and rfc822 format available.

Message #30 received at 4393-done <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: "Drew Adams" <drew.adams <at> oracle.com>
Subject: Re: bug#4393: 23.1; doc string of accessible-keymaps
Date: Fri, 11 Sep 2009 15:21:35 -0400
>> > (accessible-keymaps (current-global-map))
>> [...]
>> > Search for [f2] in the result sexp. You'll find this:
>> > ([f2] . t). That's one of the entries in the alist returned by
>> > `accessible-keymaps'.
>> > There are two other entries with cdr = t: ([24 11] . t) and
>> > ([24 54] . t). All the other entries have a keymap as cdr.
>> 
>> It turns out that these are prefixes bound to autoloaded keymaps that
>> haven't yet been loaded (and they also happen to be the same keymap).
>> `accessible-keymaps' does not autoload keymaps.  I guess it should
>> return ([f2] . 2C-command) and  ([24 54] . 2C-command).

> OK, so if I understand right, this is not a lack of explanation in the doc of
> accessible-keymaps, but is a code bug that will be fixed.

Actually, I believe I fixed it yesterday with the below,


        Stefan


Index: src/keymap.c
===================================================================
RCS file: /sources/emacs/emacs/src/keymap.c,v
retrieving revision 1.384
retrieving revision 1.385
diff -u -r1.384 -r1.385
--- src/keymap.c	11 Sep 2009 00:59:05 -0000	1.384
+++ src/keymap.c	11 Sep 2009 02:14:07 -0000	1.385
@@ -292,7 +292,7 @@
 		  goto autoload_retry;
 		}
 	      else
-	      	return Qt;
+	      	return object;
 	    }
 	}
     }



Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4393; Package emacs. (Fri, 11 Sep 2009 20:30:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Drew Adams" <drew.adams <at> oracle.com>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Fri, 11 Sep 2009 20:30:05 GMT) Full text and rfc822 format available.

Message #35 received at 4393 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: "Drew Adams" <drew.adams <at> oracle.com>
To: "'Stefan Monnier'" <monnier <at> iro.umontreal.ca>,
        <4393 <at> debbugs.gnu.org>
Subject: RE: bug#4393: 23.1; doc string of accessible-keymaps
Date: Fri, 11 Sep 2009 13:21:16 -0700
> Actually, I believe I fixed it yesterday with the below,

Great; thanks. Looking forward to it.

Unfortunately, this bug is also in Emacs 22, so version-agnostic code will still
need to filter with (when (keymapp x)...). FYI, it's not a problem before Emacs
22.

Thx - Drew




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> emacsbugs.donarmstrong.com. (Sat, 10 Oct 2009 14:24:13 GMT) Full text and rfc822 format available.

This bug report was last modified 15 years and 314 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.