all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Drew Adams" <drew.adams@oracle.com>
To: <emacs-devel@gnu.org>
Subject: interactive-p and called-interactively-p
Date: Sat, 15 Aug 2009 16:00:52 -0700	[thread overview]
Message-ID: <8AD328622F5645B282D1E72CB4582EF3@us.oracle.com> (raw)

1. The doc for these two functions is a mess - see bug #3941.

2. Beyond the doc problem, but related to it, there is a non-doc problem:
Whoever came up with the new function (in Emacs 22) `called-interactively-p' did
the wrong thing, IMO.

That function name tells nothing more nor less than the name `interactive-p'
tells. There is nothing in the _names_ that distinguishes these two functions.
Might as well have named the new function `interactive-p-2' (no, it's not a
suggestion).

This fact is a sign that the design is wrong, for if we did come up with names
that suggest the distinction, we would soon see that using two different
functions is the wrong approach. This is really one function with two minor
behavioral variants.

It would have been far better to just add an optional argument to
`interactive-p' than to create a new, similarly named function. For example:

(defun interactive-p (&optional k-macro-p)
  "Return t if the function in which this appears was called interactively.
If optional arg K-MACRO-P is non-nil, return t when called during
execution of a keyboard macro. If it is nil, return nil in that case.
...[rest of description]"

Leaving the status quo in place will bring nothing but confusion, no matter how
the doc is improved. It is better to just DTRT now.

I vote for deprecating one or the other of these two functions, combining them
by using an optional argument to express the alternative behaviors. That will go
a long way toward clarifying the intended uses.





             reply	other threads:[~2009-08-15 23:00 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-15 23:00 Drew Adams [this message]
2009-08-16  5:16 ` interactive-p and called-interactively-p Stefan Monnier
2009-08-16 13:29   ` Chong Yidong
2009-08-16 14:53     ` Stefan Monnier
2009-08-16 15:51     ` Drew Adams
2009-08-16 21:23   ` Richard Stallman
2009-08-16 22:40     ` Drew Adams
2009-08-17  5:38     ` Stephen J. Turnbull
2009-08-18  4:57       ` Richard Stallman
2009-08-18  7:08         ` Stephen J. Turnbull
2009-08-29 21:54     ` Stefan Monnier
2009-08-31 22:21       ` Richard Stallman
2009-08-31 23:56         ` Stefan Monnier
2009-09-01  1:58           ` Chong Yidong
2009-09-01  5:40             ` Stefan Monnier
2009-09-01 21:20               ` Richard Stallman
2009-09-01 23:30                 ` Stefan Monnier
2009-09-03 13:48                   ` Richard Stallman
2009-09-03 14:11                     ` Stephen J. Turnbull
2009-09-03 21:17                       ` Stefan Monnier
2009-09-04  1:21                         ` Stephen J. Turnbull
2009-09-04 13:11                           ` Stefan Monnier
2009-09-04  3:04                         ` Glenn Morris
2009-09-04  4:44                           ` Stephen J. Turnbull
  -- strict thread matches above, loose matches on Subject: below --
2009-09-03 16:27 MON KEY
2004-12-02  2:16 Luc Teirlinck
2004-12-03  3:41 ` Richard Stallman

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

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

  git send-email \
    --in-reply-to=8AD328622F5645B282D1E72CB4582EF3@us.oracle.com \
    --to=drew.adams@oracle.com \
    --cc=emacs-devel@gnu.org \
    /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 external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.