GNU bug report logs - #65536
30.0.50; replace-regexp-in-string documentation does not mention it saves match data

Previous Next

Package: emacs;

Reported by: Jens Schmidt <jschmidt4gnu <at> vodafonemail.de>

Date: Fri, 25 Aug 2023 13:18:01 UTC

Severity: normal

Tags: notabug, wontfix

Found in version 30.0.50

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #14 received at 65536 <at> debbugs.gnu.org (full text, mbox):

From: Jens Schmidt <jschmidt4gnu <at> vodafonemail.de>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: 65536 <at> debbugs.gnu.org
Subject: Re: bug#65536: 30.0.50; replace-regexp-in-string documentation does
 not mention it saves match data
Date: Fri, 25 Aug 2023 18:56:15 +0200
On 2023-08-25  17:26, Jens Schmidt wrote:
> On 2023-08-25  16:18, Eli Zaretskii wrote:
>>> Date: Fri, 25 Aug 2023 15:16:29 +0200
>>> From:  Jens Schmidt via "Bug reports for GNU Emacs,
>>>  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
> 
>>> Maybe this should be explicitly documented in its doc string and/or
>>> the Emacs Lisp manual ((elisp) Search and Replace) so that users of
>>> the function can rely on that fact?
>>
>> Is it important to promise never to clobber match-data in this
>> function?
> 
> Not sure whether the following is convincing enough ...

OTOH, I just found the following in the doc string of
`save-match-data', which means that `replace-regexp-in-string'
is actually not "convention-conforming":

  NOTE: The convention in Elisp is that any function, except for a few
  exceptions like car/assoc/+/goto-char, can clobber the match data,
  so ‘save-match-data’ should normally be used to save *your* match data
  rather than your caller’s match data.

The final decision is yours ...





This bug report was last modified 1 year and 269 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.