[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/subr.el,v
From: |
Chong Yidong |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/subr.el,v |
Date: |
Sun, 16 Nov 2008 21:02:06 +0000 |
CVSROOT: /sources/emacs
Module name: emacs
Changes by: Chong Yidong <cyd> 08/11/16 21:02:06
Index: subr.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/subr.el,v
retrieving revision 1.621
retrieving revision 1.622
diff -u -b -r1.621 -r1.622
--- subr.el 16 Nov 2008 20:02:49 -0000 1.621
+++ subr.el 16 Nov 2008 21:02:05 -0000 1.622
@@ -1811,16 +1811,27 @@
(c 0)
(echo-keystrokes 0)
(cursor-in-echo-area t)
- (message-log-max nil))
+ (message-log-max nil)
+ (stop-keys (list 'return ?\r ?\n ?\e))
+ (rubout-keys (list 'backspace ?\b ?\177)))
(add-text-properties 0 (length prompt)
minibuffer-prompt-properties prompt)
(while (progn (message "%s%s"
prompt
(make-string (length pass) ?.))
- (setq c (read-char-exclusive nil t))
- (and (/= c ?\r) (/= c ?\n) (/= c ?\e)))
+ ;; We used to use read-char-exclusive, that that
+ ;; gives funny behavior when the user presses,
+ ;; e.g., the arrow keys.
+ (setq c (read-event nil t))
+ (not (memq c stop-keys)))
(clear-this-command-keys)
- (cond ((= c ?\C-u) ; kill line
+ (cond ((memq c rubout-keys) ; rubout
+ (when (> (length pass) 0)
+ (let ((new-pass (substring pass 0 -1)))
+ (and (arrayp pass) (clear-string pass))
+ (setq pass new-pass))))
+ ((not (numberp c)))
+ ((= c ?\C-u) ; kill line
(and (arrayp pass) (clear-string pass))
(setq pass ""))
((= c ?\C-y) ; yank
@@ -1835,16 +1846,12 @@
(and (arrayp pass) (clear-string pass))
(setq c ?\0)
(setq pass new-pass))))
- ((and (/= c ?\b) (/= c ?\177)) ; insert char
+ ((characterp c) ; insert char
(let* ((new-char (char-to-string c))
(new-pass (concat pass new-char)))
(and (arrayp pass) (clear-string pass))
(clear-string new-char)
(setq c ?\0)
- (setq pass new-pass)))
- ((> (length pass) 0) ; rubout
- (let ((new-pass (substring pass 0 -1)))
- (and (arrayp pass) (clear-string pass))
(setq pass new-pass)))))
(message nil)
(or pass default "")))))
- [Emacs-diffs] Changes to emacs/lisp/subr.el,v, Martin Rudalics, 2008/11/02
- [Emacs-diffs] Changes to emacs/lisp/subr.el,v, Chong Yidong, 2008/11/03
- [Emacs-diffs] Changes to emacs/lisp/subr.el,v, Martin Rudalics, 2008/11/04
- [Emacs-diffs] Changes to emacs/lisp/subr.el,v, Chong Yidong, 2008/11/16
- [Emacs-diffs] Changes to emacs/lisp/subr.el,v,
Chong Yidong <=
- [Emacs-diffs] Changes to emacs/lisp/subr.el,v, Chong Yidong, 2008/11/16