unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* limit input allowed by read-from-minibuffer?
@ 2006-02-23 21:38 bturnip
  2006-02-24 22:28 ` Drew Adams
  0 siblings, 1 reply; 5+ messages in thread
From: bturnip @ 2006-02-23 21:38 UTC (permalink / raw)


I want to prompt for a value in the minibuffer and only accept the
input if it matches one of the choices presented in my prompt string.
How do I do this?

(defun example()
  (interactive)
  (setq read_method(read-from-minibuffer "Read Method?
[<,>,>>,+<,+>,+>>] " nil nil nil nil "<"))
)

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

* limit input allowed by read-from-minibuffer?
@ 2006-02-23 21:39 bturnip
  2006-02-23 23:30 ` B. T. Raven
  0 siblings, 1 reply; 5+ messages in thread
From: bturnip @ 2006-02-23 21:39 UTC (permalink / raw)


I want to prompt for a value in the minibuffer and only accept the
input if it matches one of the choices presented in my prompt string.
How do I do this?

(defun example()
  (interactive)
  (setq read_method(read-from-minibuffer "Read Method?
[<,>,>>,+<,+>,+>>] " nil nil nil nil "<"))
)

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

* Re: limit input allowed by read-from-minibuffer?
  2006-02-23 21:39 bturnip
@ 2006-02-23 23:30 ` B. T. Raven
  2006-02-24 19:45   ` bturnip
  0 siblings, 1 reply; 5+ messages in thread
From: B. T. Raven @ 2006-02-23 23:30 UTC (permalink / raw)



"bturnip" <bturnip@gmail.com> wrote in message
news:1140730760.877986.48650@i39g2000cwa.googlegroups.com...
> I want to prompt for a value in the minibuffer and only accept the
> input if it matches one of the choices presented in my prompt string.
> How do I do this?
>
> (defun example()
>   (interactive)
>   (setq read_method(read-from-minibuffer "Read Method?
> [<,>,>>,+<,+>,+>>] " nil nil nil nil "<"))
> )
>

 (defun example()
   (interactive)
   (setq rm '("" "<" ">" ">>" "+<" "+>" "+>>"))
   (while (progn
       (setq read_method(read-from-minibuffer "Read Method?
[<,>,>>,+<,+>,+>>] " nil nil nil nil "<"))
    (not (member read_method rm))))

 )

I haven't tested this but something close to it should work. You have to
look for the null string because that's what will  be bound to your
'read_method variable if you just press enter. It will then be a synonym
for "<"

Ed

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

* Re: limit input allowed by read-from-minibuffer?
  2006-02-23 23:30 ` B. T. Raven
@ 2006-02-24 19:45   ` bturnip
  0 siblings, 0 replies; 5+ messages in thread
From: bturnip @ 2006-02-24 19:45 UTC (permalink / raw)


Thanks!  That did the trick.  I removed the option to just press enter-
I am going to have to do a little more work to figure out that part.

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

* RE: limit input allowed by read-from-minibuffer?
  2006-02-23 21:38 limit input allowed by read-from-minibuffer? bturnip
@ 2006-02-24 22:28 ` Drew Adams
  0 siblings, 0 replies; 5+ messages in thread
From: Drew Adams @ 2006-02-24 22:28 UTC (permalink / raw)


    I want to prompt for a value in the minibuffer and only accept the
    input if it matches one of the choices presented in my prompt string.
    How do I do this?

    (defun example()
      (interactive)
      (setq read_method(read-from-minibuffer "Read Method?
    [<,>,>>,+<,+>,+>>] " nil nil nil nil "<")))

You want `completing-read', not `read-from-minibuffer'. That will: 1) let
users complete their input to any of the possible values, and 2) require
that their input be one of those values. Use non-nil for the REQUIRE-MATCH
argument.

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

end of thread, other threads:[~2006-02-24 22:28 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-02-23 21:38 limit input allowed by read-from-minibuffer? bturnip
2006-02-24 22:28 ` Drew Adams
  -- strict thread matches above, loose matches on Subject: below --
2006-02-23 21:39 bturnip
2006-02-23 23:30 ` B. T. Raven
2006-02-24 19:45   ` bturnip

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).