unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Alan Mackenzie <acm@muc.de>
To: Juri Linkov <juri@linkov.net>
Cc: 30186@debbugs.gnu.org
Subject: bug#30186: 27.0.50; Password is not hidden in read-passwd
Date: Fri, 26 Jan 2018 18:37:02 +0000	[thread overview]
Message-ID: <20180126183702.GA5056@ACM> (raw)
In-Reply-To: <87vafp7i82.fsf@mail.linkov.net>

Hello, Juri.

Firstly, apologies for answering your first post without having
understood it properly.

On Thu, Jan 25, 2018 at 23:15:41 +0200, Juri Linkov wrote:
> >> 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.

> > I'm not sure about this.  Doesn't `set-text-properties' need to be
> > "protected", too?

> I'm not sure either.  Do you think that `set-text-properties' without
> `with-silent-modifications' will cause the same problem that you
> described in http://lists.gnu.org/r/emacs-devel/2015-04/msg00506.html

set-text-properties outwith a with-silent-modifications will most
definitely cause that problem.

> > I'm not sure why you want to do this.  Why do you want to do this?

> Doing yank `C-y' in the minibuffer of `read-passwd' puts dots `.'
> over the yanked characters using `display' properties, then later
> `set-text-properties' removes all properties (exposing the yanked
> characters), but without `with-silent-modifications' it used to put
> `display' properties back.

OK, I understand this, now.

> After the change that added `with-silent-modifications',
> the hook that puts `display' properties back doesn't run.

Yes.

[ .... ]

The problem here appears to be a fundamental design bug in Emacs: that
text properties are regarded as part of the buffer rather than something
accompanying the buffer, as overlays are.  before/after-change-functions
are applied alike to proper buffer changes and text property changes.

read-passwd absolutely needs an after-change-function to run on the
text-property changes in remove-yank-excluded-properties.  This seems
fair enough.  CC Mode absolutely requires the change hooks _not_ to run
on the text-property changes in remove-yank-excluded-properties.  The
two conflict with eachother.

A workaround might be for read-passwd to use an overlay rather than a
text property for display.  But this doesn't solve the underlying
problem.  I now see that the invocation of with-silent-modifications in
remove-yank-excluded-properties is not the Right Thing.  It breaks the
model of text properties being an integral part of the buffer.

Perhaps an alternative would be for Emacs to provide a flag which
indicates to a before/after-change-function whether the current change
is a "proper" change or merely a text property change.  Change hook
functions could then test this flag and, for example, refrain from doing
anything for a text property change.

-- 
Alan Mackenzie (Nuremberg, Germany).





  reply	other threads:[~2018-01-26 18:37 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-20 21:29 bug#30186: 27.0.50; Password is not hidden in read-passwd Juri Linkov
2018-01-21 15:59 ` Eli Zaretskii
2018-01-21 21:19   ` Juri Linkov
2018-01-22 18:27     ` Glenn Morris
2018-01-22 18:45       ` Glenn Morris
2018-01-22 21:38         ` Juri Linkov
2018-01-23 21:38           ` Juri Linkov
2018-01-25 17:39             ` Alan Mackenzie
2018-01-25 21:15               ` Juri Linkov
2018-01-26 18:37                 ` Alan Mackenzie [this message]
2018-01-26 19:08                   ` Eli Zaretskii
2018-01-26 20:00                     ` Alan Mackenzie
2018-01-27  9:40                       ` Eli Zaretskii
2018-01-27 11:37                         ` Alan Mackenzie
2018-01-27 12:23                           ` Eli Zaretskii
2018-01-27 13:38                             ` Alan Mackenzie
2018-01-27 21:43                               ` Juri Linkov
2018-01-27 22:10                                 ` Alan Mackenzie
2018-01-27  8:27                   ` martin rudalics
2018-01-27  9:21                     ` Alan Mackenzie
2018-01-30  8:30                       ` martin rudalics
2018-01-22  1:53 ` Glenn Morris

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180126183702.GA5056@ACM \
    --to=acm@muc.de \
    --cc=30186@debbugs.gnu.org \
    --cc=juri@linkov.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).