From: "Drew Adams" <drew.adams@oracle.com>
To: <12066@debbugs.gnu.org>
Subject: bug#12066: 24.1; Customize :type `restricted-sexp' :tag - use it for prompt
Date: Fri, 27 Jul 2012 02:27:41 -0700 [thread overview]
Message-ID: <7B2264BA4D104FA488427D8664FF5665@us.oracle.com> (raw)
In-Reply-To: <8071B1FC8E764E37AA6BE5474AD5A563@us.oracle.com>
The behavior I described is no doubt not what is seen with emacs -Q.
In emacs -Q the sexp is not read in the minibuffer. In my setup it is. I'm not
sure why, but if there is no case with vanilla Emacs where the sexp is read in
the minibuffer then this request can be closed.
In the example I was using for testing, the :type was actually a `choice', only
one choice of which was the `restrictive-sexp' as presented.
In my setup, when I choose that choice in Value Menu the sexp is read in the
minibuffer. After it is read, the editable field has been created and populated
with the sexp read. And thereafter `read' uses that field for the sexp. IOW,
the field is not there at first, and the first `read' reads from the minibuffer.
Perhaps this behavior has something to do with my using a standalone minibuffer
frame - dunno.
In emacs -Q, when I choose that choice in Value Menu the editable field is
displayed immediately and the sexp is then read from there.
I don't know what causes this difference.
Here is a backtrace from my setup showing the call to `read'. The prompt
appears when `minibuffer-depth-setup' is called (just before, presumably).
Debugger entered--entering a function:
* minibuffer-depth()
* minibuffer-depth-setup()
* #<subr read>(nil)
* apply(#<subr read> nil)
read(nil)
* #[514 "\300\x01!\207" [read] 4 "\n\n(fn WIDGET VALUE)"]((restricted-sexp :tag
"Character class (e.g., [:space:])" :match-alternatives ((lambda (xx) (let
(name) (and (vectorp xx) (= 1 (length xx)) (symbolp (setq name (aref xx 0)))
(setq name (symbol-name name)) (eq 58 (aref name 0)) (eq 58 (aref name (1-
...))))))) :value nil) nil)
widget-apply((restricted-sexp :tag "Character class (e.g., [:space:])"
:match-alternatives ((lambda (xx) (let (name) (and (vectorp xx) (= 1 (length
xx)) (symbolp (setq name (aref xx 0))) (setq name (symbol-name name)) (eq 58
(aref name 0)) (eq 58 (aref name (1- ...))))))) :value nil) :value-to-external
nil)
widget-default-get((restricted-sexp :tag "Character class (e.g., [:space:])"
:match-alternatives ((lambda (xx) (let (name) (and (vectorp xx) (= 1 (length
xx)) (symbolp (setq name (aref xx 0))) (setq name (symbol-name name)) (eq 58
(aref name 0)) (eq 58 (aref name (1- ...))))))) :value nil))
widget-choice-action((choice :args ((character :value "
I do not see where this is done by my code, but if it is, then this can be
closed. It's not clear to me what is invoking `read' in this way, so that it
reads a sexp from the minibuffer. (The debugger shows `read' called with nil as
arg, but the doc of `read' says that it uses the minibuffer (only) when its arg
is t.)
It's also not clear where in the code emacs -Q creates the editable field
immediately, so that it can read from there, vs what I see in my setup, which is
that there is no editable field at first and the first `read' takes place in the
minibuffer.
prev parent reply other threads:[~2012-07-27 9:27 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-27 5:56 bug#12066: 24.1; Customize :type `restricted-sexp' :tag - use it for prompt Drew Adams
2012-07-27 8:02 ` Andreas Schwab
2012-07-27 9:27 ` 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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7B2264BA4D104FA488427D8664FF5665@us.oracle.com \
--to=drew.adams@oracle.com \
--cc=12066@debbugs.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.