Commit d2d818bf authored by Paul Eggert's avatar Paul Eggert
Browse files

Merge from mainline.

parents ef3ff036 1aba75c2
...@@ -1118,47 +1118,47 @@ else cover the whole buffer." ...@@ -1118,47 +1118,47 @@ else cover the whole buffer."
(save-excursion (save-excursion
(goto-char end) (diff-end-of-hunk nil 'donttrustheader) (goto-char end) (diff-end-of-hunk nil 'donttrustheader)
(let ((plus 0) (minus 0) (space 0) (bang 0)) (let ((plus 0) (minus 0) (space 0) (bang 0))
while (and (= (forward-line -1) 0) (<= start (point))) (while (and (= (forward-line -1) 0) (<= start (point)))
(if (not (looking-at (if (not (looking-at
(concat diff-hunk-header-re-unified (concat diff-hunk-header-re-unified
"\\|[-*][-*][-*] [0-9,]+ [-*][-*][-*][-*]$" "\\|[-*][-*][-*] [0-9,]+ [-*][-*][-*][-*]$"
"\\|--- .+\n\\+\\+\\+ "))) "\\|--- .+\n\\+\\+\\+ ")))
(case (char-after) (case (char-after)
(?\s (incf space)) (?\s (incf space))
(?+ (incf plus)) (?+ (incf plus))
(?- (incf minus)) (?- (incf minus))
(?! (incf bang)) (?! (incf bang))
((?\\ ?#) nil) ((?\\ ?#) nil)
(t (setq space 0 plus 0 minus 0 bang 0))) (t (setq space 0 plus 0 minus 0 bang 0)))
(cond (cond
((looking-at diff-hunk-header-re-unified) ((looking-at diff-hunk-header-re-unified)
(let* ((old1 (match-string 2)) (let* ((old1 (match-string 2))
(old2 (match-string 4)) (old2 (match-string 4))
(new1 (number-to-string (+ space minus))) (new1 (number-to-string (+ space minus)))
(new2 (number-to-string (+ space plus)))) (new2 (number-to-string (+ space plus))))
(if old2 (if old2
(unless (string= new2 old2) (replace-match new2 t t nil 4)) (unless (string= new2 old2) (replace-match new2 t t nil 4))
(goto-char (match-end 3)) (goto-char (match-end 3))
(insert "," new2)) (insert "," new2))
(if old1 (if old1
(unless (string= new1 old1) (replace-match new1 t t nil 2)) (unless (string= new1 old1) (replace-match new1 t t nil 2))
(goto-char (match-end 1)) (goto-char (match-end 1))
(insert "," new1)))) (insert "," new1))))
((looking-at diff-context-mid-hunk-header-re) ((looking-at diff-context-mid-hunk-header-re)
(when (> (+ space bang plus) 0) (when (> (+ space bang plus) 0)
(let* ((old1 (match-string 1)) (let* ((old1 (match-string 1))
(old2 (match-string 2)) (old2 (match-string 2))
(new (number-to-string (new (number-to-string
(+ space bang plus -1 (string-to-number old1))))) (+ space bang plus -1 (string-to-number old1)))))
(unless (string= new old2) (replace-match new t t nil 2))))) (unless (string= new old2) (replace-match new t t nil 2)))))
((looking-at "\\*\\*\\* \\([0-9]+\\),\\(-?[0-9]*\\) \\*\\*\\*\\*$") ((looking-at "\\*\\*\\* \\([0-9]+\\),\\(-?[0-9]*\\) \\*\\*\\*\\*$")
(when (> (+ space bang minus) 0) (when (> (+ space bang minus) 0)
(let* ((old (match-string 1)) (let* ((old (match-string 1))
(new (format (new (format
(concat "%0" (number-to-string (length old)) "d") (concat "%0" (number-to-string (length old)) "d")
(+ space bang minus -1 (string-to-number old))))) (+ space bang minus -1 (string-to-number old)))))
(unless (string= new old) (replace-match new t t nil 2)))))) (unless (string= new old) (replace-match new t t nil 2))))))
(setq space 0 plus 0 minus 0 bang 0)))))) (setq space 0 plus 0 minus 0 bang 0)))))))
;;;; ;;;;
;;;; Hooks ;;;; Hooks
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment