+ ediff-diff-buffer ediff-word-mode ediff-narrow-bounds)))
+
+;; 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)
+ (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 "")
+ ;; 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 "")
+ (ediff-with-current-buffer diff-buffer
+ (buffer-size))))))
+
+