diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-10-04 15:06:45 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2013-10-04 15:06:45 -0400 |
commit | 258ab3bc882036e9b3d85d73d1f22bc29f42f979 (patch) | |
tree | 8233784fed00a3cfc4926be37f3981d5e4e69dc3 /lisp/subr.el | |
parent | 939fb29cd9b7d77cd334daa6b67e20a28d75393c (diff) |
* lisp/subr.el (read-passwd): Hide chars even when called within a context
where after-change-functions is disabled.
(set-temporary-overlay-map): Don't remove oneself from pre-command-hook
until we removed ourself from overriding-terminal-local-map.
Fixes: debbugs:15501
Diffstat (limited to 'lisp/subr.el')
-rw-r--r-- | lisp/subr.el | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/lisp/subr.el b/lisp/subr.el index ba953656b8..0d03e9a88c 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -2104,6 +2104,7 @@ by doing (clear-string STRING)." (setq-local buffer-undo-list t) (setq-local select-active-regions nil) (use-local-map read-passwd-map) + (setq-local inhibit-modification-hooks nil) ;bug#15501. (add-hook 'after-change-functions hide-chars-fun nil 'local)) (unwind-protect (let ((enable-recursive-minibuffers t)) @@ -4394,14 +4395,15 @@ deactivation of MAP." ;; suspended during the C-u one so we don't exit isearch just ;; because we hit 1 after C-u and that 1 exits isearch whereas it ;; doesn't exit C-u. - (unless (cond ((null keep-pred) nil) - ((eq t keep-pred) - (eq this-command - (lookup-key map (this-command-keys-vector)))) - (t (funcall keep-pred))) - (remove-hook 'pre-command-hook clearfun) - (internal-pop-keymap map 'overriding-terminal-local-map) - (when on-exit (funcall on-exit))))) + (with-demoted-errors "set-temporary-overlay-map PCH: %S" + (unless (cond ((null keep-pred) nil) + ((eq t keep-pred) + (eq this-command + (lookup-key map (this-command-keys-vector)))) + (t (funcall keep-pred))) + (internal-pop-keymap map 'overriding-terminal-local-map) + (remove-hook 'pre-command-hook clearfun) + (when on-exit (funcall on-exit)))))) (add-hook 'pre-command-hook clearfun) (internal-push-keymap map 'overriding-terminal-local-map))) |