;;; diff.el --- Run `diff' in compilation-mode.
-;; Copyright (C) 1992, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1994, 1996 Free Software Foundation, Inc.
;; Keywords: unix, tools
'(
;; -u format: @@ -OLDSTART,OLDEND +NEWSTART,NEWEND @@
("^@@ -\\([0-9]+\\),[0-9]+ \\+\\([0-9]+\\),[0-9]+ @@$" 1 2)
-
+
;; -c format: *** OLDSTART,OLDEND ****
("^\\*\\*\\* \\([0-9]+\\),[0-9]+ \\*\\*\\*\\*$" 1 nil)
;; --- NEWSTART,NEWEND ----
;; -n format: {a,d,c}OLDSTART LINES-CHANGED
("^[adc]\\([0-9]+\\)\\( [0-9]+\\)?$" 1)
)
- "Alist (REGEXP OLD-IDX NEW-IDX) of regular expressions to match difference
+ "Alist (REGEXP OLD-IDX NEW-IDX) of regular expressions to match difference
sections in \\[diff] output. If REGEXP matches, the OLD-IDX'th
subexpression gives the line number in the old file, and NEW-IDX'th
subexpression gives the line number in the new file. If OLD-IDX or NEW-IDX
;; Avoid frightening people with "abnormally terminated"
;; if diff finds differences.
(set (make-local-variable 'compilation-exit-message-function)
- (lambda (proc msg)
- (let ((code (process-exit-status proc)))
- (if (eq (process-status proc) 'exit)
- (cond ((zerop code)
- '("finished (no differences)\n" . "finished"))
- ((= code 1)
- '("finished\n" . "finished"))
- (t
- (cons msg code)))
- (cons msg code)))))
+ (lambda (status code msg)
+ (cond ((not (eq status 'exit))
+ (cons msg code))
+ ((zerop code)
+ '("finished (no differences)\n" . "no differences"))
+ ((= code 1)
+ '("finished\n" . "differences found"))
+ (t
+ (cons msg code)))))
(set (make-local-variable 'diff-old-file) old)
(set (make-local-variable 'diff-new-file) new)
(set (make-local-variable 'diff-old-temp-file) old-alt)