* lisp/subr.el (read-char-choice): Only show the cursor after the prompt,
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 15 Mar 2011 02:42:31 +0000 (22:42 -0400)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 15 Mar 2011 02:42:31 +0000 (22:42 -0400)
not after the answer.

lisp/ChangeLog
lisp/subr.el

index 6d80ed0..4bcb111 100644 (file)
@@ -1,3 +1,8 @@
+2011-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * subr.el (read-char-choice): Only show the cursor after the prompt,
+       not after the answer.
+
 2011-03-15  Kevin Ryde  <user42@zip.com.au>
 
        * help-fns.el (variable-at-point): Skip leading quotes, if any
index 3330fa2..6f39a41 100644 (file)
@@ -2003,24 +2003,24 @@ If optional argument INHIBIT-KEYBOARD-QUIT is non-nil, ignore
 keyboard-quit events while waiting for a valid input."
   (unless (consp chars)
     (error "Called `read-char-choice' without valid char choices"))
-  (let ((cursor-in-echo-area t)
-       (executing-kbd-macro executing-kbd-macro)
-       char done)
-    (while (not done)
-      (unless (get-text-property 0 'face prompt)
-       (setq prompt (propertize prompt 'face 'minibuffer-prompt)))
-      (setq char (let ((inhibit-quit inhibit-keyboard-quit))
-                  (read-key prompt)))
-      (cond
-       ((not (numberp char)))
-       ((memq char chars)
-       (setq done t))
-       ((and executing-kbd-macro (= char -1))
-       ;; read-event returns -1 if we are in a kbd macro and
-       ;; there are no more events in the macro.  Attempt to
-       ;; get an event interactively.
-       (setq executing-kbd-macro nil))))
-    ;; Display the question with the answer.
+  (let (char done)
+    (let ((cursor-in-echo-area t)
+          (executing-kbd-macro executing-kbd-macro))
+      (while (not done)
+        (unless (get-text-property 0 'face prompt)
+          (setq prompt (propertize prompt 'face 'minibuffer-prompt)))
+        (setq char (let ((inhibit-quit inhibit-keyboard-quit))
+                     (read-key prompt)))
+        (cond
+         ((not (numberp char)))
+         ((memq char chars)
+          (setq done t))
+         ((and executing-kbd-macro (= char -1))
+          ;; read-event returns -1 if we are in a kbd macro and
+          ;; there are no more events in the macro.  Attempt to
+          ;; get an event interactively.
+          (setq executing-kbd-macro nil)))))
+    ;; Display the question with the answer.  But without cursor-in-echo-area.
     (message "%s%s" prompt (char-to-string char))
     char))