Function: majutsu-conflict--refine-diff-region

majutsu-conflict--refine-diff-region is a natively compiled function defined in majutsu-conflict.el.

Signature

(majutsu-conflict--refine-diff-region BEG END)

Documentation

Apply word-level refinement to diff lines between BEG and END.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-conflict.el
(defun majutsu-conflict--refine-diff-region (beg end)
  "Apply word-level refinement to diff lines between BEG and END."
  (save-excursion
    (majutsu-conflict--clear-refine-overlays beg end)
    (goto-char beg)
    (let ((remove-beg nil)
          (remove-end nil)
          (add-beg nil)
          (add-end nil))
      (cl-labels
          ((flush ()
             (majutsu-conflict--refine-pair
              remove-beg remove-end add-beg add-end)
             (setq remove-beg nil remove-end nil
                   add-beg nil add-end nil)))
        (while (< (point) end)
          (cond
           ((looking-at "^-")
            (when add-beg (flush))
            (let ((beg (1+ (line-beginning-position)))
                  (end (min end (1+ (line-end-position)))))
              (if remove-beg
                  (setq remove-end end)
                (setq remove-beg beg
                      remove-end end))))
           ((looking-at "^+")
            (let ((beg (1+ (line-beginning-position)))
                  (end (min end (1+ (line-end-position)))))
              (if add-beg
                  (setq add-end end)
                (setq add-beg beg
                      add-end end))))
           (t
            (flush)))
          (forward-line 1))
        (flush)))))