Function: diff-hl-changes-from-buffer
diff-hl-changes-from-buffer is a natively compiled function defined in
diff-hl.el.
Signature
(diff-hl-changes-from-buffer BUF)
Source Code
;; Defined in /nix/store/cfz56rl3lp066226i0bmmgiicls3gcq7-emacs-packages-deps/share/emacs/site-lisp/elpa/diff-hl-20261001.135/diff-hl.el
(defun diff-hl-changes-from-buffer (buf)
(with-current-buffer buf
(let (res)
(goto-char (point-min))
(unless (eobp)
(ignore-errors
(diff-beginning-of-hunk t))
(while (looking-at diff-hunk-header-re-unified)
(let ((line (string-to-number (match-string 3)))
(beg (point)))
(with-no-warnings
(let (diff-auto-refine-mode)
(diff-end-of-hunk)))
(let* ((inserts (diff-count-matches "^\\+" beg (point)))
(deletes (diff-count-matches "^-" beg (point)))
(type (cond ((zerop deletes) 'insert)
((zerop inserts) 'delete)
(t 'change))))
(when (eq type 'delete)
(cl-incf line))
(push (list line inserts deletes type) res)))))
(nreverse res))))