summaryrefslogtreecommitdiff
path: root/lisp/subr.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2013-10-04 15:06:45 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2013-10-04 15:06:45 -0400
commit258ab3bc882036e9b3d85d73d1f22bc29f42f979 (patch)
tree8233784fed00a3cfc4926be37f3981d5e4e69dc3 /lisp/subr.el
parent939fb29cd9b7d77cd334daa6b67e20a28d75393c (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.el18
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)))