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

From: Juri Linkov <[email-masked]>
Date: Tue, 23 Jan 2018 23:38:10 +0200

Hi Alan,

Do you agree we could remove the effect of
with-silent-modifications around set-text-properties,
and leave it only on remove-list-of-text-properties?
This will help to fix the reported regression.

>>> Anyway, I bisected it for you, to
>>> c5e89be20a3feba9c67be6855b1dbdc6d8ae5ce2
>
>> 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)