emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r110387: * lisp/subr.el (read-passwd-


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r110387: * lisp/subr.el (read-passwd-map): New var.
Date: Sat, 06 Oct 2012 13:29:15 -0400
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 110387
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Sat 2012-10-06 13:29:15 -0400
message:
  * lisp/subr.el (read-passwd-map): New var.
  (read-passwd): Use `read-string' again.
  * lisp/minibuffer.el (delete-minibuffer-contents): Make it interactive.
modified:
  lisp/ChangeLog
  lisp/minibuffer.el
  lisp/subr.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2012-10-06 17:16:26 +0000
+++ b/lisp/ChangeLog    2012-10-06 17:29:15 +0000
@@ -1,3 +1,9 @@
+2012-10-06  Stefan Monnier  <address@hidden>
+
+       * subr.el (read-passwd-map): New var.
+       (read-passwd): Use `read-string' again.
+       * minibuffer.el (delete-minibuffer-contents): Make it interactive.
+
 2012-10-06  Jambunathan K  <address@hidden>
 
        * register.el (append-to-register, prepend-to-register):

=== modified file 'lisp/minibuffer.el'
--- a/lisp/minibuffer.el        2012-09-30 09:18:38 +0000
+++ b/lisp/minibuffer.el        2012-10-06 17:29:15 +0000
@@ -632,6 +632,7 @@
 (defun delete-minibuffer-contents ()
   "Delete all user input in a minibuffer.
 If the current buffer is not a minibuffer, erase its entire contents."
+  (interactive)
   ;; We used to do `delete-field' here, but when file name shadowing
   ;; is on, the field doesn't cover the entire minibuffer contents.
   (delete-region (minibuffer-prompt-end) (point-max)))

=== modified file 'lisp/subr.el'
--- a/lisp/subr.el      2012-10-06 16:59:01 +0000
+++ b/lisp/subr.el      2012-10-06 17:29:15 +0000
@@ -2143,6 +2143,13 @@
       (setq first nil))
     code))
 
+(defconst read-passwd-map
+  (let ((map (make-sparse-keymap)))
+    (set-keymap-parent map minibuffer-local-map)
+    (define-key map "\C-u" #'delete-minibuffer-contents) ;bug#12570
+    map)
+  "Keymap used while reading passwords.")
+
 (defun read-passwd (prompt &optional confirm default)
   "Read a password, prompting with PROMPT, and return it.
 If optional CONFIRM is non-nil, read the password twice to make sure.
@@ -2180,19 +2187,11 @@
             (setq minibuf (current-buffer))
             ;; Turn off electricity.
             (set (make-local-variable 'post-self-insert-hook) nil)
+            (use-local-map read-passwd-map)
             (add-hook 'after-change-functions hide-chars-fun nil 'local))
         (unwind-protect
-            (let ((enable-recursive-minibuffers t)
-                 (map (make-sparse-keymap))
-                 result)
-             (set-keymap-parent map minibuffer-local-map)
-             (define-key map "\C-u"    ; bug#12570
-               (lambda () (interactive) (delete-minibuffer-contents)))
-             (setq result
-                   ;; t = no history.
-                   (read-from-minibuffer prompt nil map nil t default))
-             (if (and (equal "" result) default) default
-               result))
+            (let ((enable-recursive-minibuffers t))
+              (read-string prompt nil t default)) ; t = "no history"
           (when (buffer-live-p minibuf)
             (with-current-buffer minibuf
               ;; Not sure why but it seems that there might be cases where the


reply via email to

[Prev in Thread] Current Thread [Next in Thread]