unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#18092: 24.4.50; doc string of `define-prefix-command'
@ 2014-07-23 19:54 Drew Adams
  2014-07-23 20:16 ` Drew Adams
  2016-04-29 22:51 ` Lars Ingebrigtsen
  0 siblings, 2 replies; 4+ messages in thread
From: Drew Adams @ 2014-07-23 19:54 UTC (permalink / raw)
  To: 18092

 Define COMMAND as a prefix command.  COMMAND should be a symbol.
 A new sparse keymap is stored as COMMAND's function definition and its value.
 If a second optional argument MAPVAR is given, the map is stored as
 its value instead of as COMMAND's value; but COMMAND is still defined
 as a function.
 The third optional argument NAME, if given, supplies a menu name
 string for the map.  This is required to use the keymap as a menu.
 This function returns COMMAND.

1. It is not at all clear what the occurrence of "its" in the 4th
   sentence ("If a second...") refers to.  And this part of the doc
   string should explicitly say what MAPVAR is: a symbol that is used as
   a variable - it is given the map as value.

2. The second line of the doc string is too long - should not be more
   than 70 chars long.


In GNU Emacs 24.4.50.1 (i686-pc-mingw32)
 of 2014-06-28 on ODIEONE
Bzr revision: 117431 rgm@gnu.org-20140628015517-eku6hj8mpgcvfnso
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/Devel/emacs/snapshot/trunk
 --enable-checking=yes,glyphs 'CFLAGS=-O0 -g3'
 LDFLAGS=-Lc:/Devel/emacs/lib 'CPPFLAGS=-DGC_MCHECK=1
 -Ic:/Devel/emacs/include''





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#18092: 24.4.50; doc string of `define-prefix-command'
  2014-07-23 19:54 bug#18092: 24.4.50; doc string of `define-prefix-command' Drew Adams
@ 2014-07-23 20:16 ` Drew Adams
  2016-04-29 22:54   ` Lars Ingebrigtsen
  2016-04-29 22:51 ` Lars Ingebrigtsen
  1 sibling, 1 reply; 4+ messages in thread
From: Drew Adams @ 2014-07-23 20:16 UTC (permalink / raw)
  To: 18092

Things are actually worse than that.

The notion of "prefix command" is not introduced or explained anywhere.
It is not in either the Emacs manual or the Elisp manual. 

`define-prefix-command' has been around for a long time, but it is a
poorly chosen name.  The symbol is NOT defined as a command or even
as a function (it is fboundp but not functionp or commandp).
This name is misleading and confusing.

The Elisp manual speaks better of `define-prefix-command', by saying
that it "prepares SYMBOL for use as a prefix key's binding" - nothing
about "prefix command".  Such wording should be used also for the doc
string.

It would even be good to rename the function (keeping
`define-prefix-command' as a deprecated alias).  Maybe something like
`prepare-symbol-for-prefix-key'.

The doc should also make clear that the value it puts in the function
cell is a new, empty keymap.  Thus, if you do
(define-prefix-command 'foo), and then you define keys in that keymap,
and then you do (define-prefix-command 'foo) again, the keys you
bound earlier are lost (since a new map is now used for foo).





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#18092: 24.4.50; doc string of `define-prefix-command'
  2014-07-23 19:54 bug#18092: 24.4.50; doc string of `define-prefix-command' Drew Adams
  2014-07-23 20:16 ` Drew Adams
@ 2016-04-29 22:51 ` Lars Ingebrigtsen
  1 sibling, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2016-04-29 22:51 UTC (permalink / raw)
  To: Drew Adams; +Cc: 18092

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

>  Define COMMAND as a prefix command.  COMMAND should be a symbol.
>  A new sparse keymap is stored as COMMAND's function definition and its value.
>  If a second optional argument MAPVAR is given, the map is stored as
>  its value instead of as COMMAND's value; but COMMAND is still defined
>  as a function.
>  The third optional argument NAME, if given, supplies a menu name
>  string for the map.  This is required to use the keymap as a menu.
>  This function returns COMMAND.
>
> 1. It is not at all clear what the occurrence of "its" in the 4th
>    sentence ("If a second...") refers to.  And this part of the doc
>    string should explicitly say what MAPVAR is: a symbol that is used as
>    a variable - it is given the map as value.

Yes, that's quite unclear.  I've now clarified.

> 2. The second line of the doc string is too long - should not be more
>    than 70 chars long.

And filled.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 4+ messages in thread

* bug#18092: 24.4.50; doc string of `define-prefix-command'
  2014-07-23 20:16 ` Drew Adams
@ 2016-04-29 22:54   ` Lars Ingebrigtsen
  0 siblings, 0 replies; 4+ messages in thread
From: Lars Ingebrigtsen @ 2016-04-29 22:54 UTC (permalink / raw)
  To: Drew Adams; +Cc: 18092

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

> Things are actually worse than that.
>
> The notion of "prefix command" is not introduced or explained anywhere.
> It is not in either the Emacs manual or the Elisp manual. 
>
> `define-prefix-command' has been around for a long time, but it is a
> poorly chosen name.  The symbol is NOT defined as a command or even
> as a function (it is fboundp but not functionp or commandp).
> This name is misleading and confusing.
>
> The Elisp manual speaks better of `define-prefix-command', by saying
> that it "prepares SYMBOL for use as a prefix key's binding" - nothing
> about "prefix command".  Such wording should be used also for the doc
> string.

True.  I've now added a sentence mimicing the info text.

> It would even be good to rename the function (keeping
> `define-prefix-command' as a deprecated alias).  Maybe something like
> `prepare-symbol-for-prefix-key'.
>
> The doc should also make clear that the value it puts in the function
> cell is a new, empty keymap.  Thus, if you do
> (define-prefix-command 'foo), and then you define keys in that keymap,
> and then you do (define-prefix-command 'foo) again, the keys you
> bound earlier are lost (since a new map is now used for foo).

It says:

A new sparse keymap is stored as COMMAND's function definition and its
value.

I think that's pretty unambiguous. 

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2016-04-29 22:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-07-23 19:54 bug#18092: 24.4.50; doc string of `define-prefix-command' Drew Adams
2014-07-23 20:16 ` Drew Adams
2016-04-29 22:54   ` Lars Ingebrigtsen
2016-04-29 22:51 ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).