Subject: bug#30186: 27.0.50; Password is not hidden in read-passwd

From: Juri Linkov <[email-masked]>
Date: Mon, 22 Jan 2018 23:38:00 +0200

>> Anyway, I bisected it for you, to
>> c5e89be20a3feba9c67be6855b1dbdc6d8ae5ce2

Thank you very much, I was considering creating a service that
would read git-bisect params in a webform and run a multi-core
VM instance, but with your tips it should be doable locally.

> Here's the discussion reference that should have been in the commit message:
>
> http://lists.gnu.org/r/emacs-devel/2015-04/msg00506.html

I confirm that after removing with-silent-modifications from
remove-yank-excluded-properties, C-y leaves ‘display’ properties
in the minibuffer.  It's ‘(inhibit-modification-hooks t)’ in
let-bind of with-silent-modifications that prevents read-passwd
from calling hide-chars-fun again to put new ‘display’ properties
after set-text-properties removes old ones.  So this patch should
fix this issue, but I'm not sure if this is right.

diff --git a/lisp/subr.el b/lisp/subr.el
index 092850a..8673547 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -3041,7 +3041,8 @@ remove-yank-excluded-properties
             (setq run-start run-end)))))
     (with-silent-modifications
       (if (eq yank-excluded-properties t)
-          (set-text-properties start end nil)
+          (let ((inhibit-modification-hooks nil))
+            (set-text-properties start end nil))
         (remove-list-of-text-properties start end yank-excluded-properties)))))
 
 (defvar yank-undo-function)