GNU bug report logs - #14797
24.3.50; new, undocumented menu structure using VECTORS?

Previous Next

Package: emacs;

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

Date: Thu, 4 Jul 2013 23:55:02 UTC

Severity: minor

Tags: fixed, patch

Found in version 24.3.50

Fixed in version 25.1

Done: npostavs <at> users.sourceforge.net

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 14797 in the body.
You can then email your comments to 14797 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-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Thu, 04 Jul 2013 23:55:02 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 bug-gnu-emacs <at> gnu.org. (Thu, 04 Jul 2013 23:55:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50; new, undocumented menu structure using VECTORS?
Date: Thu, 4 Jul 2013 16:54:21 -0700 (PDT)
I have a library, lacarte.el, that lets you use the keyboard to navigate
the menu-bar menus.  The aim is thus similar to that of tmm, but you can
use completion against the full "path" to a menu item (submenus etc.).
Completion candidates look like this: `Buffers > Frames > foo.el' (item
`foo.el' in submenu `Frames' of menu-bar menu `Buffers'.

When you have multiple frames, the dynamically created `Buffers'
menu-bar menu has a (dynamically created) submenu `Frames'.

Starting with Emacs 23, instead of seeing candidates like `Buffers >
Frames > foo.el' in LaCarte, you see only a pseudo candidate for the
submenu itself: `Buffers > Frames', and if you choose that candidate you
get an error saying that there is no such command.  That's because the
LaCarte code assumes that the menu data structure corresponds to the
documented menu structures.

It seems that the Emacs code now uses an undocumented menu structure
here. The code in menu-bar.el that creates the `Buffers' menu (and its
`Frames' submenu) changed in Emacs 23 to use a vector of buffer (and a
vector of frame) entries instead of a list of them.

I don't see anything in the manual that mentions that a menu can take
this form.  Dunno whether I am not reading it well enough or the doc is
incomplete.

And I see nothing in the Emacs 23 NEWS about such a new menu structure.
(I do not understand how someone can make such a fundamental change and
not mention it in NEWS.  New menu structures are not something that
Emacs adds everyday.)

1. So at a minimum this is a DOC bug report: I would like the doc to
describe all of the possible forms of menus.  Apparently it no longer
does that.

2. Beyond that, using vectors here is a PITA for Lisp code.  It makes
code that traverses such code difficult, if not impossible.  Without
this change to vectors, a simple recursion on a list cdr is all that is
needed.  No doubt I'll find a fix, once I know the actual possible menu
structures available.  But using vectors here does not seem very lispy.

Could you perhaps consider changing the code back to using lists?


Here are some details - see function `menu-bar-update-buffers' in
`menu-bar.el.  This is a snippet from that function - the part that
creates the `Frames' submenu:

Emacs 22 (and prior is similar, but a little different (but still uses a
list, not a vector)):

;; Make a Frames menu if we have more than one frame.
(when (cdr frames)
  (let ((frames-menu
         (cons 'keymap
               (cons "Select Frame"
                     (mapcar
                      (lambda (frame)
                        (nconc
                         (list (frame-parameter frame 'name)
                               (frame-parameter frame 'name)
                               (cons nil nil))
                         'menu-bar-select-frame))
                      frames)))))
    ;; Put it after the normal buffers
    (setq buffers-menu
          (nconc buffers-menu
                 `((frames-separator "--")
                   (frames menu-item "Frames" ,frames-menu))))))

Emacs 23 - uses a vector (why?):

;; Make a Frames menu if we have more than one frame.
(when (cdr frames)
  (let* ((frames-vec (make-vector (length frames) nil)) ; <============
         (frames-menu (cons 'keymap (list "Select Frame" frames-vec)))
         (i 0))
    (dolist (frame frames)
      (aset frames-vec i
            (nconc
             (list
              (frame-parameter frame 'name)
              (cons nil nil))
             `(lambda ()
                (interactive) (menu-bar-select-frame ,frame))))
      (setq i (1+ i)))
    ;; Put it after the normal buffers
    (setq buffers-menu
          (nconc buffers-menu
                 `((frames-separator "--")
                   (frames menu-item "Frames" ,frames-menu))))))

I assume (hope) this change to using vectors was not gratuitous.  But is
it necessary?  The cost is added difficulty analyzing and traversing the
data structure, a priori.  What is the benefit?

As a heads-up, can you tell me where else, besides these two dynamically
created menus (`Buffers' and `Frames'), Emacs use vectors in menu data
structures?




In GNU Emacs 24.3.50.1 (i686-pc-mingw32)
 of 2013-07-01 on LEG570
Bzr revision: 113246 lekktu <at> gmail.com-20130701165437-ea20s94hqwp3ttaj
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/usr --enable-checking CFLAGS='-O0 -g3'
 CPPFLAGS='-DGLYPH_DEBUG=1 -I/c/usr/include''




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Fri, 05 Jul 2013 10:43:02 GMT) Full text and rfc822 format available.

Message #8 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 14797 <at> debbugs.gnu.org
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Fri, 05 Jul 2013 06:42:04 -0400
> I don't see anything in the manual that mentions that a menu can take
> this form.  Dunno whether I am not reading it well enough or the doc is
> incomplete.

Indeed, vectors are an old format that is deprecated but
still supported.  They are similar to char-tables (which are supported,
on the other hand).

> (I do not understand how someone can make such a fundamental change and
> not mention it in NEWS.  New menu structures are not something that
> Emacs adds everyday.)

That's because it's a new menu structure, on the contrary.

> 2. Beyond that, using vectors here is a PITA for Lisp code.  It makes
> code that traverses such code difficult, if not impossible.  Without
> this change to vectors, a simple recursion on a list cdr is all that is
> needed.

You should probably use `map-keymap' instead.


        Stefan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Fri, 05 Jul 2013 15:19:01 GMT) Full text and rfc822 format available.

Message #11 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 14797 <at> debbugs.gnu.org
Subject: RE: bug#14797: 24.3.50; new, undocumented menu structure using
 VECTORS?
Date: Fri, 5 Jul 2013 08:17:57 -0700 (PDT)
> > I don't see anything in the manual that mentions that a menu can take
> > this form.  Dunno whether I am not reading it well enough or the doc is
> > incomplete.
> 
> Indeed, vectors are an old format that is deprecated but
> still supported.  They are similar to char-tables (which are supported,
> on the other hand).

Really? In what Emacs version was that old format documented?  I do not
see it, going back to Emacs 20, and I do not remember ever seeing it
before that.

And why would we suddently make a code change in Emacs 24.4 to revert back
to using a deprecated menu structure?  And without adding any comment in
the code as to (a) the fact that we deliberately use a deprecated and
undocumented structure here and (b) why we do so.

What was gained by this?

Note too that deprecation of a feature (which as you note generally does
not imply its desupport) generally does not mean removing all doc for it.
As long as something is supported it is typically documented - at least
reference doc.  Support implies doc, generally.

This "old format" has not been documented since at least Emacs 20.
If the Emacs code is going to start using it again then it should be
documented.

> > (I do not understand how someone can make such a fundamental change and
> > not mention it in NEWS.  New menu structures are not something that
> > Emacs adds everyday.)
> 
> That's because it's a new menu structure, on the contrary.

Is there a "not" missing there, perhaps?  If not, I do not follow you.

AFAICT, it IS a new menu structure, at least in terms of documentation.
Where was it documented for users before, if in fact it was really a
supported menu structure?

> > 2. Beyond that, using vectors here is a PITA for Lisp code.  It makes
> > code that traverses such code difficult, if not impossible.  Without
> > this change to vectors, a simple recursion on a list cdr is all that is
> > needed.
> 
> You should probably use `map-keymap' instead.

Yes, eventually I will perhaps do that.  My code was originally based
on similar code in `substitute-key-definition', whose code evolved to use
`map-keymap' when that function was introduced.

But that is really beside the point here.  Why introduce an undocumented,
at best deprecated, menu structure in Emacs 24.4?  Was something useful
gained wrt the list structure that was used before?  Why move TOWARD
something that has (at best) been deprecated for >15 years and is less
lispy?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Fri, 05 Jul 2013 22:46:02 GMT) Full text and rfc822 format available.

Message #14 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> IRO.UMontreal.CA>
To: Drew Adams <drew.adams <at> oracle.com>
Cc: 14797 <at> debbugs.gnu.org
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Fri, 05 Jul 2013 18:45:55 -0400
> But that is really beside the point here.  Why introduce an undocumented,
> at best deprecated, menu structure in Emacs 24.4?

To see if you'd notice,


        Stefan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Jul 2013 01:41:02 GMT) Full text and rfc822 format available.

Message #17 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 14797 <at> debbugs.gnu.org
Subject: RE: bug#14797: 24.3.50; new, undocumented menu structure using
 VECTORS?
Date: Fri, 5 Jul 2013 18:40:19 -0700 (PDT)
> > But that is really beside the point here.  Why introduce an undocumented,
> > at best deprecated, menu structure in Emacs 24.4?
> 
> To see if you'd notice, Stefan

Clever.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 19 Oct 2013 17:49:01 GMT) Full text and rfc822 format available.

Message #20 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 14797 <at> debbugs.gnu.org
Subject: RE: bug#14797: 24.3.50; new, undocumented menu structure using
 VECTORS?
Date: Sat, 19 Oct 2013 10:48:29 -0700 (PDT)
Could this bug please be fixed?  It is as simple as this:

A menu keymap (and perhaps other keymap?) can apparently have a
vector of menu entries as its third element.  This is the case for
`global-buffers-menu-map', for instance.

I do not see this form of keymap documented anywhere in the Elisp
manual.  We bother to document the `keymap-prompt', which is hardly
ever used in practice, but this alternative structure of a keymap is
completely undocumented, AFAICT.

Please document it.  Just what is the form that is allowed?  This
belongs in the Elisp manual, as part of the keymap structure
description.





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 13:10:01 GMT) Full text and rfc822 format available.

Message #23 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: npostavs <at> users.sourceforge.net
To: Drew Adams <drew.adams <at> oracle.com>
Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>, 14797 <at> debbugs.gnu.org
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Sat, 06 Aug 2016 09:09:50 -0400
[Message part 1 (text/plain, inline)]
tags 14797 patch
quit

Drew Adams <drew.adams <at> oracle.com> writes:

> What was gained by this?

I guess it's for efficiency?

Anyway, it might as well be documented, how about this:

[v1-0001-Document-use-of-vectors-in-keymaps.patch (text/plain, inline)]
From 6dd01ff617b3ee8ef8ad307a7776c2142f7f02ed Mon Sep 17 00:00:00 2001
From: Noam Postavsky <npostavs <at> gmail.com>
Date: Sat, 6 Aug 2016 09:05:05 -0400
Subject: [PATCH v1] Document use of vectors in keymaps

* doc/lispref/keymaps.texi (Format of Keymaps): Mention vector
format (Bug #14797).
---
 doc/lispref/keymaps.texi | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index f5d3811..a47d790 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -199,6 +199,14 @@ Format of Keymaps
 bindings.  A keymap with such a char-table is called a @dfn{full
 keymap}.  Other keymaps are called @dfn{sparse keymaps}.
 
+@item @var{vector}
+This kind of element is similar to a char-table: element @var{n} is
+the binding for the character with code @var{n}.  Since the range of
+characters that can be bound this way is limited by the vector size,
+and vector creation allocates space for all character codes from 0 up,
+this format should not be used except for creating menu keymaps
+(@pxref{Menu Keymaps}), where the bindings themselves don't matter.
+
 @item @var{string}
 @cindex keymap prompt string
 @cindex overall prompt string
-- 
2.8.0


Added tag(s) patch. Request was from npostavs <at> users.sourceforge.net to control <at> debbugs.gnu.org. (Sat, 06 Aug 2016 13:10:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 14:44:02 GMT) Full text and rfc822 format available.

Message #28 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: npostavs <at> users.sourceforge.net
Cc: monnier <at> iro.umontreal.ca, drew.adams <at> oracle.com, 14797 <at> debbugs.gnu.org
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Sat, 06 Aug 2016 17:42:50 +0300
> From: npostavs <at> users.sourceforge.net
> Date: Sat, 06 Aug 2016 09:09:50 -0400
> Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>, 14797 <at> debbugs.gnu.org
> 
> --- a/doc/lispref/keymaps.texi
> +++ b/doc/lispref/keymaps.texi
> @@ -199,6 +199,14 @@ Format of Keymaps
>  bindings.  A keymap with such a char-table is called a @dfn{full
>  keymap}.  Other keymaps are called @dfn{sparse keymaps}.
>  
> +@item @var{vector}
> +This kind of element is similar to a char-table: element @var{n} is
> +the binding for the character with code @var{n}.  Since the range of
> +characters that can be bound this way is limited by the vector size,
> +and vector creation allocates space for all character codes from 0 up,
> +this format should not be used except for creating menu keymaps
> +(@pxref{Menu Keymaps}), where the bindings themselves don't matter.
> +
>  @item @var{string}
>  @cindex keymap prompt string
>  @cindex overall prompt string

LGTM, except that "the character with code N" could use some better
wording.  How about

  ... element whose index is @var{c} is the binding for the character
  @var{c}.

instead?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 15:43:02 GMT) Full text and rfc822 format available.

Message #31 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Noam Postavsky <npostavs <at> users.sourceforge.net>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>,
 Drew Adams <drew.adams <at> oracle.com>, 14797 <at> debbugs.gnu.org
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Sat, 6 Aug 2016 11:42:14 -0400
On Sat, Aug 6, 2016 at 10:42 AM, Eli Zaretskii <eliz <at> gnu.org> wrote:
>> From: npostavs <at> users.sourceforge.net
>> Date: Sat, 06 Aug 2016 09:09:50 -0400
>> Cc: Stefan Monnier <monnier <at> iro.umontreal.ca>, 14797 <at> debbugs.gnu.org
>>
>> --- a/doc/lispref/keymaps.texi
>> +++ b/doc/lispref/keymaps.texi
>> @@ -199,6 +199,14 @@ Format of Keymaps
>>  bindings.  A keymap with such a char-table is called a @dfn{full
>>  keymap}.  Other keymaps are called @dfn{sparse keymaps}.
>>
>> +@item @var{vector}
>> +This kind of element is similar to a char-table: element @var{n} is
>> +the binding for the character with code @var{n}.  Since the range of
>> +characters that can be bound this way is limited by the vector size,
>> +and vector creation allocates space for all character codes from 0 up,
>> +this format should not be used except for creating menu keymaps
>> +(@pxref{Menu Keymaps}), where the bindings themselves don't matter.
>> +
>>  @item @var{string}
>>  @cindex keymap prompt string
>>  @cindex overall prompt string
>
> LGTM, except that "the character with code N" could use some better
> wording.  How about
>
>   ... element whose index is @var{c} is the binding for the character
>   @var{c}.
>
> instead?

Sure. I guess the char-table paragraph should use the same wording, right?




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 16:16:01 GMT) Full text and rfc822 format available.

Message #34 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: Eli Zaretskii <eliz <at> gnu.org>, npostavs <at> users.sourceforge.net
Cc: monnier <at> iro.umontreal.ca, drew.adams <at> oracle.com, 14797 <at> debbugs.gnu.org
Subject: RE: bug#14797: 24.3.50; new, undocumented menu structure using
 VECTORS?
Date: Sat, 6 Aug 2016 09:15:07 -0700 (PDT)
> > +@item @var{vector}
> > +This kind of element is similar to a char-table: element @var{n} is
> > +the binding for the character with code @var{n}.  Since the range of
> > +characters that can be bound this way is limited by the vector size,
> > +and vector creation allocates space for all character codes from 0 up,
> > +this format should not be used except for creating menu keymaps
> > +(@pxref{Menu Keymaps}), where the bindings themselves don't matter.
> > +
> >  @item @var{string}
> >  @cindex keymap prompt string
> >  @cindex overall prompt string
> 
> LGTM, except that "the character with code N" could use some better
> wording.  How about
>   ... element whose index is @var{c} is the binding for the character
>   @var{c}.
> instead?

Both look OK to me.  And adding such doc is a definite
improvement.

It's not very clear to me from this doc what the relation
is between a key binding and a "binding for the character".
Keys and characters are different animals.  Clearly there
is a relation between them here, but it doesn't seem to
be made explicit.

But again, unless you want to try to clarify that, the
proposed doc is OK, and adding it improves things.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 16:36:02 GMT) Full text and rfc822 format available.

Message #37 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: npostavs <at> users.sourceforge.net
To: Drew Adams <drew.adams <at> oracle.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 14797 <at> debbugs.gnu.org,
 monnier <at> iro.umontreal.ca
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Sat, 06 Aug 2016 12:35:10 -0400
Drew Adams <drew.adams <at> oracle.com> writes:
> It's not very clear to me from this doc what the relation
> is between a key binding and a "binding for the character".
> Keys and characters are different animals.  Clearly there
> is a relation between them here, but it doesn't seem to
> be made explicit.

I think it's clear from the text in `(elisp) Key Sequences':

    A "key sequence", or "key" for short, is a sequence of one or more
    input events that form a unit.  Input events include characters,




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 16:53:01 GMT) Full text and rfc822 format available.

Message #40 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Drew Adams <drew.adams <at> oracle.com>
To: npostavs <at> users.sourceforge.net
Cc: Eli Zaretskii <eliz <at> gnu.org>, 14797 <at> debbugs.gnu.org,
 monnier <at> iro.umontreal.ca
Subject: RE: bug#14797: 24.3.50; new, undocumented menu structure using
 VECTORS?
Date: Sat, 6 Aug 2016 09:52:07 -0700 (PDT)
> > It's not very clear to me from this doc what the relation
> > is between a key binding and a "binding for the character".
> > Keys and characters are different animals.  Clearly there
> > is a relation between them here, but it doesn't seem to
> > be made explicit.
> 
> I think it's clear from the text in `(elisp) Key Sequences':
> 
>     A "key sequence", or "key" for short, is a sequence of one or more
>     input events that form a unit.  Input events include characters,

Maybe.  (But "character" is also something other than an input
event, even for Emacs.)

But it is still "not very clear to me from _this_ doc".

A few words clarifying that might help.  Or a cross-ref to
the doc that covers it.

> > But again, unless you want to try to clarify that, the
> > proposed doc is OK, and adding it improves things.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 17:38:02 GMT) Full text and rfc822 format available.

Message #43 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Noam Postavsky <npostavs <at> users.sourceforge.net>
Cc: monnier <at> iro.umontreal.ca, drew.adams <at> oracle.com, 14797 <at> debbugs.gnu.org
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Sat, 06 Aug 2016 20:36:43 +0300
> From: Noam Postavsky <npostavs <at> users.sourceforge.net>
> Date: Sat, 6 Aug 2016 11:42:14 -0400
> Cc: Drew Adams <drew.adams <at> oracle.com>, Stefan Monnier <monnier <at> iro.umontreal.ca>, 
> 	14797 <at> debbugs.gnu.org
> 
> >   ... element whose index is @var{c} is the binding for the character
> >   @var{c}.
> >
> > instead?
> 
> Sure. I guess the char-table paragraph should use the same wording, right?

Right, thanks.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 17:42:01 GMT) Full text and rfc822 format available.

Message #46 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: npostavs <at> users.sourceforge.net
Cc: 14797 <at> debbugs.gnu.org, drew.adams <at> oracle.com, monnier <at> iro.umontreal.ca
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Sat, 06 Aug 2016 20:40:34 +0300
> From: npostavs <at> users.sourceforge.net
> Cc: Eli Zaretskii <eliz <at> gnu.org>,  14797 <at> debbugs.gnu.org,  monnier <at> iro.umontreal.ca
> Date: Sat, 06 Aug 2016 12:35:10 -0400
> 
> Drew Adams <drew.adams <at> oracle.com> writes:
> > It's not very clear to me from this doc what the relation
> > is between a key binding and a "binding for the character".
> > Keys and characters are different animals.  Clearly there
> > is a relation between them here, but it doesn't seem to
> > be made explicit.
> 
> I think it's clear from the text in `(elisp) Key Sequences':
> 
>     A "key sequence", or "key" for short, is a sequence of one or more
>     input events that form a unit.  Input events include characters,

Indeed.  So each character is a key.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#14797; Package emacs. (Sat, 06 Aug 2016 19:54:02 GMT) Full text and rfc822 format available.

Message #49 received at 14797 <at> debbugs.gnu.org (full text, mbox):

From: npostavs <at> users.sourceforge.net
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 14797 <at> debbugs.gnu.org, drew.adams <at> oracle.com, monnier <at> iro.umontreal.ca
Subject: Re: bug#14797: 24.3.50;
 new, undocumented menu structure using VECTORS?
Date: Sat, 06 Aug 2016 15:53:40 -0400
tags 14797 fixed
close 14797 25.1
quit

Pushed as 3c9cb57c




Added tag(s) fixed. Request was from npostavs <at> users.sourceforge.net to control <at> debbugs.gnu.org. (Sat, 06 Aug 2016 19:54:02 GMT) Full text and rfc822 format available.

bug marked as fixed in version 25.1, send any further explanations to 14797 <at> debbugs.gnu.org and Drew Adams <drew.adams <at> oracle.com> Request was from npostavs <at> users.sourceforge.net to control <at> debbugs.gnu.org. (Sat, 06 Aug 2016 19:54:02 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 04 Sep 2016 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 8 years and 288 days ago.

Previous Next


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