]> code.delx.au - gnu-emacs/blobdiff - lisp/ediff-diff.el
*** empty log message ***
[gnu-emacs] / lisp / ediff-diff.el
index 82e260f249dc94e015638ecfdb5e61459fdd58ea..31e126c229233e1610387449a2752c97dd91de47 100644 (file)
@@ -137,35 +137,48 @@ one optional arguments, diff-number to refine.")
    (ediff-extract-diffs
     ediff-diff-buffer ediff-word-mode ediff-narrow-bounds)))
 
-;; fill in DIFF-BUFFER with the output from the diff program run on FILE1 and
-;; FILE2
-;; Return the length of that buffer.
+;; Run the diff program on FILE1 and FILE2 and put the output in DIFF-BUFFER
+;; Return the size of DIFF-BUFFER
 (defun ediff-make-diff2-buffer (diff-buffer file1 file2)
-  (cond ((< (ediff-file-size file1) 0)
-        (message "Can't diff remote files: %s"
-                 (ediff-abbreviate-file-name file1))
-        (sit-for 2)
-        ;; 1 is an error exit code
-        1)
-       ((< (ediff-file-size file2) 0)
-        (message "Can't diff remote file: %s"
-                 (ediff-abbreviate-file-name file2))
-        (sit-for 2)
-        (message "")
-        ;; 1 is an error exit code
-        1)
-       (t (message "Computing differences between %s and %s ..."
-                   (file-name-nondirectory file1)
-                   (file-name-nondirectory file2))
-          ;; this erases the diff buffer automatically
-          (ediff-exec-process ediff-diff-program
-                              diff-buffer
-                              'synchronize
-                              ediff-diff-options file1 file2)
-          ;;(message "Computing differences ... done")
+  (let ((file1-size (ediff-file-size file1))
+       (file2-size (ediff-file-size file2)))
+    (cond ((not (numberp file1-size))
+          (message "Can't find file: %s"
+                   (ediff-abbreviate-file-name file1))
+          (sit-for 2)
+          ;; 1 is an error exit code
+          1)
+         ((not (numberp file2-size))
+          (message "Can't find file: %s"
+                   (ediff-abbreviate-file-name file2))
+          (sit-for 2)
+          ;; 1 is an error exit code
+          1)
+         ((< file1-size 0)
+          (message "Can't diff remote files: %s"
+                   (ediff-abbreviate-file-name file1))
+          (sit-for 2)
+          ;; 1 is an error exit code
+          1)
+         ((< file2-size 0)
+          (message "Can't diff remote file: %s"
+                   (ediff-abbreviate-file-name file2))
+          (sit-for 2)
           (message "")
-          (ediff-eval-in-buffer diff-buffer
-            (buffer-size)))))
+          ;; 1 is an error exit code
+          1)
+         (t (message "Computing differences between %s and %s ..."
+                     (file-name-nondirectory file1)
+                     (file-name-nondirectory file2))
+            ;; this erases the diff buffer automatically
+            (ediff-exec-process ediff-diff-program
+                                diff-buffer
+                                'synchronize
+                                ediff-diff-options file1 file2)
+            ;;(message "Computing differences ... done")
+            (message "")
+            (ediff-eval-in-buffer diff-buffer
+              (buffer-size))))))
   
 
      
@@ -1188,6 +1201,7 @@ argument to `skip-chars-forward'."
 ;;; Local Variables:
 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
 ;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1)
+;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body))
 ;;; End:
 
 (provide 'ediff-diff)