unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: "'Stefan Monnier'" <monnier@iro.umontreal.ca>, <10909@debbugs.gnu.org>
Cc: cyd@gnu.org
Subject: bug#10909: 24.0.94; doc of `define-minor-mode'
Date: Sun, 23 Sep 2012 11:05:35 -0700	[thread overview]
Message-ID: <232BEA225630459F82B1A4FE183AA54C@us.oracle.com> (raw)
In-Reply-To: <jwvsja8sqxa.fsf-monnier+emacs@gnu.org>

> >> IOW, it says nothing about what happens when an arg is 
> >> passed that is not nil or omitted or `toggle'.
> >> And I've seen at least one user try to use `(foo-mode t)'.
> >> It turns out that that has the same effect as `(foo-mode 1)',
> >> but nothing in the doc says that it should.
> >
> > Fixed in trunk.
> 
> Actually, I think the right fix is to replace calls that use t with
> calls that use 1, rather than documenting the accidental behavior.

I don't know exactly what the fix was.  (The latest build I have is 
GNU Emacs 24.2.50.1 (i386-mingw-nt5.1.2600) of 2012-09-17 on MARVIN.)

But I think perhaps you are missing the point.

The doc says nothing about ANY non-nil value other than `toggle'.  It thus says
NOTHING about how to turn OFF the mode using Lisp.  It also does not say that 1
or 42 or t or `stefan' turns the mode on.  (In particular, it does not favor 1
or 42 over t.)

At the very least the doc should say that a positive arg turns it on and a
non-positive value turns it off.

That's the point.  The doc is OK wrt interactive use, but not wrt Lisp calls.
It's not about t vs 1 in any existing Lisp code.  It's about saying what the
possible argument values do.

Presumably, most users calling `define-minor-mode' will mention in the doc of
their new mode command how to call it from Lisp, since some users of their mode,
especially if it is global, will prefer to turn it on in their init files.

That is, presumably most users of `define-minor-mode' will NOT just document
their new mode following the example given in the manual: "If enabled, foo on
you!".  They will hopefully document it in a way that tells users how to turn
the mode on and off, both interactively and using Lisp.  (That part could be,
but is not, done automatically by `define-minor-mode'.)

To document that behavior for their users, users of `define-minor-mode' should
have access to doc for the macro that tells them how users of their new modes
can turn them on and off using Lisp.  It's really the least they can expect from
a general utility macro.






      reply	other threads:[~2012-09-23 18:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-29  2:54 bug#10909: 24.0.94; doc of `define-minor-mode' Drew Adams
2012-09-22 15:25 ` Chong Yidong
2012-09-23 15:25   ` Stefan Monnier
2012-09-23 18:05     ` Drew Adams [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=232BEA225630459F82B1A4FE183AA54C@us.oracle.com \
    --to=drew.adams@oracle.com \
    --cc=10909@debbugs.gnu.org \
    --cc=cyd@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).