Fix up previous replace-in-string commit

* lisp/subr.el (replace-in-string): Fix thinko in implementation.
This commit is contained in:
Lars Ingebrigtsen 2020-09-15 17:36:36 +02:00
parent 3beb8bc994
commit 0a7152e095
2 changed files with 12 additions and 2 deletions

View file

@ -4430,7 +4430,11 @@ This function returns a freshly created string."
(aref fromstring if)))
(setq ii (1+ ii)
if (1+ if)))
(when (= if (length fromstring))
(if (not (= if (length fromstring)))
;; We didn't have a match after all.
(setq i (1+ i))
;; We had one, so gather the previous part and the
;; substition.
(when (not (= start i))
(push (substring instring start i) result))
(push tostring result)

View file

@ -450,7 +450,13 @@ See https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19350."
(should (equal (replace-in-string "zot" "bar" "barfoozot")
"barfoobar"))
(should (equal (replace-in-string "z" "bar" "barfoozot")
"barfoobarot")))
"barfoobarot"))
(should (equal (replace-in-string "zot" "bar" "zat")
"zat"))
(should (equal (replace-in-string "azot" "bar" "zat")
"zat"))
(should (equal (replace-in-string "azot" "bar" "azot")
"bar")))
(provide 'subr-tests)
;;; subr-tests.el ends here