From: Eli Zaretskii Date: Sun, 30 Jan 2022 06:49:34 +0000 (+0200) Subject: Fix regression in Occur Edit mode X-Git-Tag: emacs-28.0.92~72 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=f22e9ba9ac64c30d6532a508494b5149c27596e7;p=emacs.git Fix regression in Occur Edit mode * lisp/replace.el (occur-after-change-function): Fix the algorithm to find the smallest change in some corner cases. (Bug#53598) --- diff --git a/lisp/replace.el b/lisp/replace.el index 45bd05d41d7..b1cfd7e3f42 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -1413,10 +1413,15 @@ To return to ordinary Occur mode, use \\[occur-cease-edit]." (length s1))))) (prefix-len (funcall common-prefix buf-str text)) (suffix-len (funcall common-prefix - (reverse buf-str) (reverse text)))) + (reverse (substring + buf-str prefix-len)) + (reverse (substring + text prefix-len))))) (setq beg-pos (+ beg-pos prefix-len)) (setq end-pos (- end-pos suffix-len)) - (setq text (substring text prefix-len (- suffix-len))) + (setq text (substring text prefix-len + (and (not (zerop suffix-len)) + (- suffix-len)))) (delete-region beg-pos end-pos) (goto-char beg-pos) (insert text)))