Commit cda2f52b authored by Mattias Engdegård's avatar Mattias Engdegård

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.
parent 85871ae9
......@@ -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
......@@ -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
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment