bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#41445: 26.3; Query-replace triggers "match data clobbered by..."


From: Philipp Stephani
Subject: bug#41445: 26.3; Query-replace triggers "match data clobbered by..."
Date: Sat, 23 May 2020 14:37:17 +0200

Am Sa., 23. Mai 2020 um 14:29 Uhr schrieb Eli Zaretskii <eliz@gnu.org>:
>
> > From: Mattias Engdegård <mattiase@acm.org>
> > Date: Sat, 23 May 2020 13:36:37 +0200
> > Cc: ture@turepalsson.se, 41445@debbugs.gnu.org
> >
> > > My line of reasoning was that only the callers of ENCODE_FILE and
> > > DECODE_FILE will not expect the match-data to be clobbered.  Code that
> > > calls ucs-normalize-region directly may or may not be bothered by the
> > > clobbering, so we should leave that to the caller.
> > >
> > > The advantage of not doing this unconditionally is that we don't
> > > unnecessarily punishing callers that don't need match-data to be
> > > saved.
> >
> > For callers of the ucs-normalize- functions, correctness should come first; 
> > their names, semantics or descriptions do not lead the user to suspect them 
> > of clobbering the match data. It is an implementation leakage which can be 
> > quite unexpected, as is witnessed by this bug.
>
> I thought we had some advice to Lisp programs not to assume that
> match-data will be preserved, but maybe I'm misremembering.  Stefan,
> do you remember something along these lines?

That's at least what the manual says
(https://www.gnu.org/software/emacs/manual/html_node/elisp/Match-Data.html):
"Notice that all functions are allowed to overwrite the match data
unless they're explicitly documented not to do so."
(Not that I like that statement, but it is current reality.)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]