From: Mattias EngdegÄrd Date: Wed, 26 Jun 2019 09:23:32 +0000 (+0200) Subject: Document bug in `replace-regexp-in-string' X-Git-Tag: emacs-27.0.90~2198 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cda2f52b94a5a94566c668835f1c4964f4d93b2b;p=emacs.git Document bug in `replace-regexp-in-string' `replace-regexp-in-string' omits the first START characters of the input string in its return value. This is a clear bug, but fixing it probably causes more trouble; document the behaviour instead (bug#36372). * doc/lispref/searching.texi (Search and Replace) * lisp/subr.el (replace-regexp-in-string): Document current behaviour. --- diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi index 33455114dac..ef1cffc446f 100644 --- a/doc/lispref/searching.texi +++ b/doc/lispref/searching.texi @@ -1790,8 +1790,10 @@ this. This function copies @var{string} and searches it for matches for @var{regexp}, and replaces them with @var{rep}. It returns the modified copy. If @var{start} is non-@code{nil}, the search for -matches starts at that index in @var{string}, so matches starting -before that index are not changed. +matches starts at that index in @var{string}, and the returned value +does not include the first @var{start} characters of @var{string}. +To get the whole transformed string, concatenate the first +@var{start} characters of @var{string} with the return value. This function uses @code{replace-match} to do the replacement, and it passes the optional arguments @var{fixedcase}, @var{literal} and diff --git a/lisp/subr.el b/lisp/subr.el index baff1e909a1..b981af6afe6 100644 --- a/lisp/subr.el +++ b/lisp/subr.el @@ -4208,7 +4208,8 @@ Return a new string containing the replacements. Optional arguments FIXEDCASE, LITERAL and SUBEXP are like the arguments with the same names of function `replace-match'. If START -is non-nil, start replacements at that index in STRING. +is non-nil, start replacements at that index in STRING, and omit +the first START characters of STRING from the return value. REP is either a string used as the NEWTEXT arg of `replace-match' or a function. If it is a function, it is called with the actual text of each