comparison lisp/ediff/ediff.el @ 181:bfd6434d15b3 r20-3b17

Import from CVS: tag r20-3b17
author cvs
date Mon, 13 Aug 2007 09:53:19 +0200
parents 2d532a89d707
children 3d6bfa290dbd
comparison
equal deleted inserted replaced
180:add28d59e586 181:bfd6434d15b3
4 4
5 ;; Author: Michael Kifer <kifer@cs.sunysb.edu> 5 ;; Author: Michael Kifer <kifer@cs.sunysb.edu>
6 ;; Created: February 2, 1994 6 ;; Created: February 2, 1994
7 ;; Keywords: comparing, merging, patching, version control. 7 ;; Keywords: comparing, merging, patching, version control.
8 8
9 (defconst ediff-version "2.66" "The current version of Ediff") 9 (defconst ediff-version "2.67" "The current version of Ediff")
10 (defconst ediff-date "July 9, 1997" "Date of last update") 10 (defconst ediff-date "August 7, 1997" "Date of last update")
11 11
12 12
13 ;; This file is part of GNU Emacs. 13 ;; This file is part of GNU Emacs.
14 14
15 ;; GNU Emacs is free software; you can redistribute it and/or modify 15 ;; GNU Emacs is free software; you can redistribute it and/or modify
156 (defvar ediff-last-merge-autostore-dir) 156 (defvar ediff-last-merge-autostore-dir)
157 157
158 158
159 ;; Used as a startup hook to set `_orig' patch file read-only. 159 ;; Used as a startup hook to set `_orig' patch file read-only.
160 (defun ediff-set-read-only-in-buf-A () 160 (defun ediff-set-read-only-in-buf-A ()
161 (ediff-eval-in-buffer ediff-buffer-A 161 (ediff-with-current-buffer ediff-buffer-A
162 (toggle-read-only 1))) 162 (toggle-read-only 1)))
163 163
164 ;; Return a plausible default for ediff's first file: 164 ;; Return a plausible default for ediff's first file:
165 ;; In dired, return the file name under the point, unless it is a directory 165 ;; In dired, return the file name under the point, unless it is a directory
166 ;; If the buffer has a file name, return that file name. 166 ;; If the buffer has a file name, return that file name.
289 (set last-dir (expand-file-name (file-name-directory file)))) 289 (set last-dir (expand-file-name (file-name-directory file))))
290 290
291 ;; Setup the buffer 291 ;; Setup the buffer
292 (set buffer-name (find-file-noselect file)) 292 (set buffer-name (find-file-noselect file))
293 293
294 (ediff-eval-in-buffer (symbol-value buffer-name) 294 (ediff-with-current-buffer (symbol-value buffer-name)
295 (widen) ; Make sure the entire file is seen 295 (widen) ; Make sure the entire file is seen
296 (cond (file-magic ; file has a handler, such as jka-compr-handler or 296 (cond (file-magic ; file has a handler, such as jka-compr-handler or
297 ;;; ange-ftp-hook-function--arrange for temp file 297 ;;; ange-ftp-hook-function--arrange for temp file
298 (ediff-verify-file-buffer 'magic) 298 (ediff-verify-file-buffer 'magic)
299 (setq file 299 (setq file
886 (let ((tmp-buffer (get-buffer-create ediff-tmp-buffer)) 886 (let ((tmp-buffer (get-buffer-create ediff-tmp-buffer))
887 overl-A overl-B 887 overl-A overl-B
888 file-A file-B) 888 file-A file-B)
889 889
890 ;; in case beg/end-A/B aren't markers--make them into markers 890 ;; in case beg/end-A/B aren't markers--make them into markers
891 (ediff-eval-in-buffer buffer-A 891 (ediff-with-current-buffer buffer-A
892 (setq beg-A (move-marker (make-marker) beg-A) 892 (setq beg-A (move-marker (make-marker) beg-A)
893 end-A (move-marker (make-marker) end-A))) 893 end-A (move-marker (make-marker) end-A)))
894 (ediff-eval-in-buffer buffer-B 894 (ediff-with-current-buffer buffer-B
895 (setq beg-B (move-marker (make-marker) beg-B) 895 (setq beg-B (move-marker (make-marker) beg-B)
896 end-B (move-marker (make-marker) end-B))) 896 end-B (move-marker (make-marker) end-B)))
897 897
898 (if (and (eq buffer-A buffer-B) 898 (if (and (eq buffer-A buffer-B)
899 (or (and (< beg-A end-B) (<= beg-B beg-A)) ; b-B b-A e-B 899 (or (and (< beg-A end-B) (<= beg-B beg-A)) ; b-B b-A e-B
947 ;;;###autoload 947 ;;;###autoload
948 (defalias 'ediff-merge 'ediff-merge-files) 948 (defalias 'ediff-merge 'ediff-merge-files)
949 949
950 (defsubst ediff-merge-on-startup () 950 (defsubst ediff-merge-on-startup ()
951 (ediff-do-merge 0) 951 (ediff-do-merge 0)
952 (ediff-eval-in-buffer ediff-buffer-C 952 (ediff-with-current-buffer ediff-buffer-C
953 (set-buffer-modified-p nil))) 953 (set-buffer-modified-p nil)))
954 954
955 ;;;###autoload 955 ;;;###autoload
956 (defun ediff-merge-files (file-A file-B &optional startup-hooks) 956 (defun ediff-merge-files (file-A file-B &optional startup-hooks)
957 "Merge two files without ancestor." 957 "Merge two files without ancestor."
1291 1291
1292 1292
1293 1293
1294 ;;; Local Variables: 1294 ;;; Local Variables:
1295 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) 1295 ;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun)
1296 ;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1) 1296 ;;; eval: (put 'ediff-with-current-buffer 'lisp-indent-hook 1)
1297 ;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body)) 1297 ;;; eval: (put 'ediff-with-current-buffer 'edebug-form-spec '(form body))
1298 ;;; End: 1298 ;;; End:
1299 1299
1300 (require 'ediff-util) 1300 (require 'ediff-util)
1301 1301
1302 ;;; ediff.el ends here 1302 ;;; ediff.el ends here