* lisp/replace.el (occur-after-change-function): Fix the algorithm
to find the smallest change in some corner cases. (Bug#53598)
(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)))