Mercurial > hg > xemacs-beta
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 |