[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/ediff-diff.el,v
From: |
Michael Kifer |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/ediff-diff.el,v |
Date: |
Sun, 18 Jun 2006 17:08:26 +0000 |
CVSROOT: /cvsroot/emacs
Module name: emacs
Changes by: Michael Kifer <kifer> 06/06/18 17:08:25
Index: ediff-diff.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ediff-diff.el,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -b -r1.53 -r1.54
--- ediff-diff.el 6 Jun 2006 18:43:36 -0000 1.53
+++ ediff-diff.el 18 Jun 2006 17:08:24 -0000 1.54
@@ -65,10 +65,11 @@
;; The following functions needed for setting diff/diff3 options
;; test if diff supports the --binary option
(defsubst ediff-test-utility (diff-util option &optional files)
- (condition-case ()
+ (condition-case nil
(eq 0 (apply 'call-process
(append (list diff-util nil nil nil option) files)))
- (file-error nil)))
+ (error (format "Cannot execute program %S." diff-util)))
+ )
(defun ediff-diff-mandatory-option (diff-util)
(let ((file (if (boundp 'null-device) null-device "/dev/null")))
@@ -77,13 +78,17 @@
((and (string= diff-util ediff-diff-program)
(ediff-test-utility
ediff-diff-program "--binary" (list file file)))
- "--binary")
+ "--binary ")
((and (string= diff-util ediff-diff3-program)
(ediff-test-utility
ediff-diff3-program "--binary" (list file file file)))
- "--binary")
+ "--binary ")
(t ""))))
+
+;; must be before ediff-reset-diff-options to avoid compiler errors
+(fset 'ediff-set-actual-diff-options '(lambda () nil))
+
;; make sure that mandatory options are added even if the user changes
;; ediff-diff-options or ediff-diff3-options in the customization widget
(defun ediff-reset-diff-options (symb val)
@@ -91,12 +96,9 @@
(if (eq symb 'ediff-diff-options)
ediff-diff-program
ediff-diff3-program))
- (mandatory-option (ediff-diff-mandatory-option diff-program))
- (spacer (if (string-equal mandatory-option "") "" " ")))
- (set symb
- (if (string-match mandatory-option val)
- val
- (concat mandatory-option spacer val)))
+ (mandatory-option (ediff-diff-mandatory-option diff-program)))
+ (set symb (concat mandatory-option val))
+ (ediff-set-actual-diff-options)
))
@@ -155,7 +157,7 @@
:group 'ediff-diff)
;; the actual options used in comparison
-(ediff-defvar-local ediff-actual-diff-options "" "")
+(ediff-defvar-local ediff-actual-diff-options ediff-diff-options "")
(defcustom ediff-custom-diff-program ediff-diff-program
"*Program to use for generating custom diff output for saving it in a file.
@@ -178,7 +180,7 @@
:group 'ediff-diff)
;; the actual options used in comparison
-(ediff-defvar-local ediff-actual-diff3-options "" "")
+(ediff-defvar-local ediff-actual-diff3-options ediff-diff3-options "")
(defcustom ediff-diff3-ok-lines-regexp
"^\\([1-3]:\\|====\\| \\|.*Warning *:\\|.*No newline\\|.*missing
newline\\|^\C-m$\\)"
@@ -1272,7 +1274,9 @@
;; Similarly for Windows-*
;; In DOS, must synchronize because DOS doesn't have
;; asynchronous processes.
+ (condition-case nil
(apply 'call-process program nil buffer nil args)
+ (error (format "Cannot execute program %S." program)))
;; On other systems, do it asynchronously.
(setq proc (get-buffer-process buffer))
(if proc (kill-process proc))
@@ -1328,7 +1332,8 @@
Used for splitting difference regions into individual words.")
(make-variable-buffer-local 'ediff-forward-word-function)
-(defvar ediff-whitespace " \n\t\f"
+;; \240 is unicode symbol for nonbreakable whitespace
+(defvar ediff-whitespace " \n\t\f\r\240"
"*Characters constituting white space.
These characters are ignored when differing regions are split into words.")
(make-variable-buffer-local 'ediff-whitespace)
@@ -1442,11 +1447,13 @@
"Return t if files F1 and F2 have identical contents."
(if (and (not (file-directory-p f1))
(not (file-directory-p f2)))
+ (condition-case nil
(let ((res
(apply 'call-process ediff-cmp-program nil nil nil
(append ediff-cmp-options (list f1 f2)))))
- (and (numberp res) (eq res 0))))
- )
+ (and (numberp res) (eq res 0)))
+ (error (format "Cannot execute program %S." ediff-cmp-program)))
+ ))
(defun ediff-same-contents (d1 d2 &optional filter-re)
@@ -1521,21 +1528,30 @@
(setq file-list-list (cdr file-list-list)))
(reverse result)))
-;; Ignore case handling - some ideas from drew.adams@@oracle.com
-(defun ediff-toggle-ignore-case ()
- (interactive)
- (ediff-barf-if-not-control-buffer)
- (setq ediff-ignore-case (not ediff-ignore-case))
- (cond (ediff-ignore-case
+
+(defun ediff-set-actual-diff-options ()
+ (if ediff-ignore-case
(setq ediff-actual-diff-options
(concat ediff-diff-options " " ediff-ignore-case-option)
ediff-actual-diff3-options
(concat ediff-diff3-options " " ediff-ignore-case-option3))
- (message "Ignoring regions that differ only in case"))
- (t
(setq ediff-actual-diff-options ediff-diff-options
ediff-actual-diff3-options ediff-diff3-options)
- (message "Ignoring case differences turned OFF")))
+ )
+ (setq-default ediff-actual-diff-options ediff-actual-diff-options
+ ediff-actual-diff3-options ediff-actual-diff3-options)
+ )
+
+
+;; Ignore case handling - some ideas from drew.adams@@oracle.com
+(defun ediff-toggle-ignore-case ()
+ (interactive)
+ (ediff-barf-if-not-control-buffer)
+ (setq ediff-ignore-case (not ediff-ignore-case))
+ (ediff-set-actual-diff-options)
+ (if ediff-ignore-case
+ (message "Ignoring regions that differ only in case")
+ (message "Ignoring case differences turned OFF"))
(cond (ediff-merge-job
(message "Ignoring letter case is too dangerous in merge jobs"))
((and ediff-diff3-job (string= ediff-ignore-case-option3 ""))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/ediff-diff.el,v,
Michael Kifer <=