;ELC ;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:38:40 2003 ;;; from file /home/pot/gnu/emacs-pretest.new/lisp/ediff.el ;;; in Emacs version 21.3 ;;; with bytecomp version 2.85.4.1 ;;; with all optimizations. ;;; This file uses dynamic docstrings, first added in Emacs 19.29. (if (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19.29"))) (error "`ediff.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; #@30 The current version of Ediff (defconst ediff-version "2.76" (#$ . 612)) #@21 Date of last update (defconst ediff-date "July 18, 2001" (#$ . 690)) (byte-code "\302\303!\210\304B\305B\306B \210\307\310!\210\307\311!\210\312\303\313\314\315\316\317\320&\207" [current-load-list noninteractive provide ediff cvs-cookie-handle ediff-last-dir-patch ediff-patch-default-directory require ediff-init ediff-mult custom-declare-group nil "A comprehensive visual interface to diff & patch" :tag "Ediff" :group tools] 8) #@77 *If t, Ediff will use previous directory as default when reading file name. (custom-declare-variable 'ediff-use-last-dir 'nil '(#$ . -1135) :type 'boolean :group 'ediff) (byte-code "\301B\305\301!\204\f\306\302B\305\302!\204\306\303B\305\303!\204$\306\304B\305\304!\2040\306\307B\306\207" [current-load-list ediff-last-dir-A ediff-last-dir-B ediff-last-dir-C ediff-last-dir-ancestor boundp nil ediff-last-merge-autostore-dir] 2) (defalias 'ediff-set-read-only-in-buf-A #[nil "\203\303!\203\304\303!!\203rq\210\305\306!)\207 \307=\206$\310\n!\207" [ediff-buffer-A this-command ediff-KILLED-VITAL-BUFFER get-buffer buffer-name toggle-read-only 1 ediff-quit error] 3]) (defalias 'ediff-get-default-file-name #[(&optional default fileno) "\306=\203J\307\310\311\"\310\312\313\217\310\211\211\250\204\314;\203* B ;\2039\315 !\2049 B\f \244\211\234\211\206H-\207;\203S\207\316p!\205^\317\316p!!\207" [major-mode result choices aux-list marked current dired-mode dired-get-filename nil no-error (byte-code "\300\301!\207" [dired-get-marked-files no-dir] 2) ((error)) 0 file-directory-p buffer-file-name file-name-nondirectory fileno default] 6]) #@50 Run Ediff on a pair of files, FILE-A and FILE-B. (defalias 'ediff-files #[(file-A file-B &optional startup-hooks) "\303\304 !\203\305\306! \"\202 \307\n\310%\207" [file-A file-B startup-hooks ediff-files-internal file-directory-p expand-file-name file-name-nondirectory nil ediff-files] 6 (#$ . 2346) (let ((dir-A (if ediff-use-last-dir ediff-last-dir-A default-directory)) dir-B f) (list (setq f (ediff-read-file-name "File A to compare" dir-A (ediff-get-default-file-name))) (ediff-read-file-name "File B to compare" (setq dir-B (if ediff-use-last-dir ediff-last-dir-B (file-name-directory f))) (progn (setq file-name-history (cons (ediff-abbreviate-file-name (expand-file-name (file-name-nondirectory f) dir-B)) file-name-history)) (ediff-get-default-file-name f 1)))))]) #@55 Run Ediff on three files, FILE-A, FILE-B, and FILE-C. (defalias 'ediff-files3 #[(file-A file-B file-C &optional startup-hooks) "\304\305 !\203\306\307! \"\202 \305\n!\203!\306\307!\n\"\202\"\n \310%\207" [file-A file-B file-C startup-hooks ediff-files-internal file-directory-p expand-file-name file-name-nondirectory ediff-files3] 6 (#$ . 3133) (let ((dir-A (if ediff-use-last-dir ediff-last-dir-A default-directory)) dir-B dir-C f ff) (list (setq f (ediff-read-file-name "File A to compare" dir-A (ediff-get-default-file-name))) (setq ff (ediff-read-file-name "File B to compare" (setq dir-B (if ediff-use-last-dir ediff-last-dir-B (file-name-directory f))) (progn (setq file-name-history (cons (ediff-abbreviate-file-name (expand-file-name (file-name-nondirectory f) dir-B)) file-name-history)) (ediff-get-default-file-name f 1)))) (ediff-read-file-name "File C to compare" (setq dir-C (if ediff-use-last-dir ediff-last-dir-C (file-name-directory ff))) (progn (setq file-name-history (cons (ediff-abbreviate-file-name (expand-file-name (file-name-nondirectory ff) dir-C)) file-name-history)) (ediff-get-default-file-name ff 2)))))]) (defalias 'ediff3 'ediff-files3) (defalias 'ediff-find-file #[(file-var buffer-name &optional last-dir hooks-var) "J\306 !\307 !\310 !\204\311\312 \"\210\202$\313 !\203$\311\314 \"\210\315 !\f\2034\f\315\316 !!L\210 \317 !L\210 J\203\234\320 J!\203\234\305\320 J!!\203\234r Jq\210~\210\n\203t\321\322!\210\323p \"\324\325\326 DEJBL\210\202\230\327 !\327\330 !\232\204\225\323p \"\324\325\326 DEJBL\210\202\230\321 \210)\202\250\331=\204\250\311!\210 L+\207" [file-var file file-magic temp-file-name-prefix last-dir buffer-name ediff-filename-magic-p file-name-nondirectory file-readable-p error "File `%s' does not exist or is not readable" file-directory-p "File `%s' is a directory" expand-file-name file-name-directory find-file-noselect get-buffer ediff-verify-file-buffer magic ediff-make-temp-file lambda nil delete-file file-truename buffer-file-name ediff-quit hooks-var this-command ediff-KILLED-VITAL-BUFFER] 5]) (defalias 'ediff-files-internal #[(file-A file-B file-C startup-hooks job-name &optional merge-buffer-file) "\306\211\211\307\310 \"\210\311\303\302\312\313$\210\307\310\f\"\210\311\304\301\314\313$\210 ;\203:\307\310 \"\210\311\305\300\315=\2036\316\2027\317\313$\210\320\n \f  \321BC& +\207" [buf-C buf-B buf-A file-A file-B file-C nil message "Reading file %s ... " ediff-find-file ediff-last-dir-A startup-hooks ediff-last-dir-B ediff-merge-files-with-ancestor ediff-last-dir-ancestor ediff-last-dir-C ediff-setup ediff-job-name job-name merge-buffer-file] 10]) (defalias 'ediff 'ediff-files) #@56 Run Ediff on a pair of buffers, BUFFER-A and BUFFER-B. (defalias 'ediff-buffers #[(buffer-A buffer-B &optional startup-hooks job-name) "\204\304\305 \n\306 %\207" [job-name buffer-A buffer-B startup-hooks ediff-buffers ediff-buffers-internal nil] 6 (#$ . 5853) (let (bf) (list (setq bf (read-buffer "Buffer A to compare: " (ediff-other-buffer "") t)) (read-buffer "Buffer B to compare: " (progn (save-window-excursion (other-window 1)) (ediff-other-buffer bf)) t)))]) (defalias 'ebuffers 'ediff-buffers) #@63 Run Ediff on three buffers, BUFFER-A, BUFFER-B, and BUFFER-C. (defalias 'ediff-buffers3 #[(buffer-A buffer-B buffer-C &optional startup-hooks job-name) "\204\305\306 \n \f%\207" [job-name buffer-A buffer-B buffer-C startup-hooks ediff-buffers3 ediff-buffers-internal] 6 (#$ . 6368) (let (bf bff) (list (setq bf (read-buffer "Buffer A to compare: " (ediff-other-buffer "") t)) (setq bff (read-buffer "Buffer B to compare: " (progn (save-window-excursion (other-window 1)) (ediff-other-buffer bf)) t)) (read-buffer "Buffer C to compare: " (progn (save-window-excursion (other-window 1)) (ediff-other-buffer (list bf bff))) t)))]) (defalias 'ebuffers3 'ediff-buffers3) (defalias 'ediff-buffers-internal #[(buf-A buf-B buf-C startup-hooks job-name &optional merge-buffer-file) "\306\307!!\306\307\n!!\f\205\307\f!\205\310\307\f!!\211\205%\306\307\n!!\311\311\311\203B\307!\203B\310\307!!\204G\312\313\"\210\n\203Y\307\n!\203Y\310\307\n!!\204^\312\313\n\"\210\203p \204p\312\313\f\"\210) ;\203z\314 ! ;\203\203\314 !;\203\217\314!\315 \"\315\n \" \203\246\315\f\"\316\307!\307\n! \205\270\307\f!\317\311\320D\320D\321\322D\320DE\257B\323BC& .\207" [buf-A buf-A-file-name buf-B buf-B-file-name buf-C buf-C-is-alive buffer-file-name get-buffer buffer-name nil error "Buffer %S doesn't exist" file-name-nondirectory ediff-make-temp-file ediff-setup lambda delete-file if stringp ediff-job-name buf-C-file-name file-A file-B file-C job-name ediff-3way-comparison-job startup-hooks merge-buffer-file] 16]) (defalias 'ediff-get-default-directory-name #[nil "\203 \207\n\305=\203#\306\307\310\"\211;\203 \311 !\203 \202!\f)\207\f\207" [ediff-use-last-dir ediff-last-dir-A major-mode f default-directory dired-mode dired-get-filename nil noerror file-directory-p] 4]) #@205 Run Ediff on a pair of directories, DIR1 and DIR2, comparing files that have the same name in both. The third argument, REGEXP, is a regular expression that can be used to filter out certain file names. (defalias 'ediff-directories #[(dir1 dir2 regexp) "\303 \304\n\305\306&\207" [dir1 dir2 regexp ediff-directories-internal nil ediff-files ediff-directories] 7 (#$ . 8224) (let ((dir-A (ediff-get-default-directory-name)) f) (list (setq f (ediff-read-file-name "Directory A to compare:" dir-A nil)) (ediff-read-file-name "Directory B to compare:" (if ediff-use-last-dir ediff-last-dir-B (ediff-strip-last-dir f)) nil) (read-string "Filter through regular expression: " nil 'ediff-filtering-regexp-history)))]) (defalias 'edirs 'ediff-directories) #@229 Run Ediff on a directory, DIR1, comparing its files with their revisions. The second argument, REGEXP, is a regular expression that filters the file names. Only the files that are under revision control are taken into account. (defalias 'ediff-directory-revisions #[(dir1 regexp) "\302 \303\304$\207" [dir1 regexp ediff-directory-revisions-internal ediff-revision ediff-directory-revisions] 5 (#$ . 8982) (let ((dir-A (ediff-get-default-directory-name))) (list (ediff-read-file-name "Directory to compare with revision:" dir-A nil) (read-string "Filter through regular expression: " nil 'ediff-filtering-regexp-history)))]) (defalias 'edir-revisions 'ediff-directory-revisions) #@212 Run Ediff on three directories, DIR1, DIR2, and DIR3, comparing files that have the same name in all three. The last argument, REGEXP, is a regular expression that can be used to filter out certain file names. (defalias 'ediff-directories3 #[(dir1 dir2 dir3 regexp) "\304 \n \305\306&\207" [dir1 dir2 dir3 regexp ediff-directories-internal ediff-files3 ediff-directories3] 7 (#$ . 9669) (let ((dir-A (ediff-get-default-directory-name)) f) (list (setq f (ediff-read-file-name "Directory A to compare:" dir-A nil)) (setq f (ediff-read-file-name "Directory B to compare:" (if ediff-use-last-dir ediff-last-dir-B (ediff-strip-last-dir f)) nil)) (ediff-read-file-name "Directory C to compare:" (if ediff-use-last-dir ediff-last-dir-C (ediff-strip-last-dir f)) nil) (read-string "Filter through regular expression: " nil 'ediff-filtering-regexp-history)))]) (defalias 'edirs3 'ediff-directories3) #@203 Run Ediff on a pair of directories, DIR1 and DIR2, merging files that have the same name in both. The third argument, REGEXP, is a regular expression that can be used to filter out certain file names. (defalias 'ediff-merge-directories #[(dir1 dir2 regexp &optional merge-autostore-dir) "\304 \305\n\306\307\305 &\207" [dir1 dir2 regexp merge-autostore-dir ediff-directories-internal nil ediff-merge-files ediff-merge-directories] 9 (#$ . 10570) (let ((dir-A (ediff-get-default-directory-name)) f) (list (setq f (ediff-read-file-name "Directory A to merge:" dir-A nil)) (ediff-read-file-name "Directory B to merge:" (if ediff-use-last-dir ediff-last-dir-B (ediff-strip-last-dir f)) nil) (read-string "Filter through regular expression: " nil 'ediff-filtering-regexp-history)))]) (defalias 'edirs-merge 'ediff-merge-directories) #@363 Merge files in directories DIR1 and DIR2 using files in ANCESTOR-DIR as ancestors. Ediff merges files that have identical names in DIR1, DIR2. If a pair of files in DIR1 and DIR2 doesn't have an ancestor in ANCESTOR-DIR, Ediff will merge without ancestor. The fourth argument, REGEXP, is a regular expression that can be used to filter out certain file names. (defalias 'ediff-merge-directories-with-ancestor #[(dir1 dir2 ancestor-dir regexp &optional merge-autostore-dir) "\305 \n \306\307\310\f&\207" [dir1 dir2 ancestor-dir regexp merge-autostore-dir ediff-directories-internal ediff-merge-files-with-ancestor ediff-merge-directories-with-ancestor nil] 9 (#$ . 11408) (let ((dir-A (ediff-get-default-directory-name)) f) (list (setq f (ediff-read-file-name "Directory A to merge:" dir-A nil)) (setq f (ediff-read-file-name "Directory B to merge:" (if ediff-use-last-dir ediff-last-dir-B (ediff-strip-last-dir f)) nil)) (ediff-read-file-name "Ancestor directory:" (if ediff-use-last-dir ediff-last-dir-C (ediff-strip-last-dir f)) nil) (read-string "Filter through regular expression: " nil 'ediff-filtering-regexp-history)))]) #@227 Run Ediff on a directory, DIR1, merging its files with their revisions. The second argument, REGEXP, is a regular expression that filters the file names. Only the files that are under revision control are taken into account. (defalias 'ediff-merge-directory-revisions #[(dir1 regexp &optional merge-autostore-dir) "\303 \304\305\306\n&\207" [dir1 regexp merge-autostore-dir ediff-directory-revisions-internal ediff-merge-revisions ediff-merge-directory-revisions nil] 7 (#$ . 12547) (let ((dir-A (ediff-get-default-directory-name))) (list (ediff-read-file-name "Directory to merge with revisions:" dir-A nil) (read-string "Filter through regular expression: " nil 'ediff-filtering-regexp-history)))]) (defalias 'edir-merge-revisions 'ediff-merge-directory-revisions) #@241 Run Ediff on a directory, DIR1, merging its files with their revisions and ancestors. The second argument, REGEXP, is a regular expression that filters the file names. Only the files that are under revision control are taken into account. (defalias 'ediff-merge-directory-revisions-with-ancestor #[(dir1 regexp &optional merge-autostore-dir) "\303 \304\305\306\n&\207" [dir1 regexp merge-autostore-dir ediff-directory-revisions-internal ediff-merge-revisions-with-ancestor ediff-merge-directory-revisions-with-ancestor nil] 7 (#$ . 13324) (let ((dir-A (ediff-get-default-directory-name))) (list (ediff-read-file-name "Directory to merge with revisions and ancestors:" dir-A nil) (read-string "Filter through regular expression: " nil 'ediff-filtering-regexp-history)))]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias edir-merge-revisions-with-ancestor ediff-merge-directory-revisions-with-ancestor edirs-merge-with-ancestor ediff-merge-directories-with-ancestor] 3) (defalias 'ediff-directories-internal #[(dir1 dir2 dir3 regexp action jobname &optional startup-hooks merge-autostore-dir) "\306!\203\n\202 \307!\306 !\203 \202\307 !\n;\203/\306\n!\203+\n\202.\307\n! \230\203=\310\311\"\210\202b \312=\203Q\n\230\203Q\310\313\"\210\202b \312=\203b \n\230\203b\310\314\"\210\f\203p\f;\204p\310\315 \"\210\316\211\211%&\203\243 \211'\206\206(\317>)\203\243\f\204\243\320\321)\203\234*\202\237\322!\316\323$\f\203\354;\203\277\f\230\203\277\324\325!\204\354\310\326!\210\202\354 ;\203\327\f \230\203\327\324\327!\204\354\310\326!\210\202\354\n;\203\354\f\n\230\203\354\324\330!\204\354\310\326!\210\331 \332+ \n\f&%\333\316\334\335\336,DE\334\337\336DEF-B-\340\341%\342\343 -&\344 !+\207" [dir1 dir2 dir3 jobname merge-autostore-dir meta-buf file-directory-p file-name-directory error "Directories A and B are the same: %s" ediff-directories3 "Directories A and C are the same: %s" "Directories B and C are the same: %s" "%s: Directory for storing merged files must be a string" nil (ediff-merge-directories ediff-merge-directories-with-ancestor ediff-merge-directory-revisions ediff-merge-directory-revisions-with-ancestor ediff-merge-filegroups-with-ancestor) read-file-name "Save merged files in directory: " ediff-strip-last-dir must-match y-or-n-p "Directory for saving merged files = Directory A. Sure? " "Directory merge aborted" "Directory for saving merged files = Directory B. Sure? " "Directory for saving merged files = Ancestor Directory. Sure? " ediff-intersect-directories diffs lambda setq ediff-session-action-function quote ediff-dir-difference-list ediff-prepare-meta-buffer ediff-filegroup-action "*Ediff Session Group Panel" ediff-redraw-directory-group-buffer ediff-show-meta-buffer file-list ediff-autostore-merges metajob ediff-metajob-name ediff-use-last-dir ediff-last-merge-autostore-dir regexp action startup-hooks] 9]) (defalias 'ediff-directory-revisions-internal #[(dir1 regexp action jobname &optional startup-hooks merge-autostore-dir) "\306!\203\n\202 \307! \203 ;\204\310\311\n\"\210\312\211 \203J\n\211\206-\313>)\203J \204J\314\315\203C \202F\316!\312\317$ \203c;\203c \230\203c\320\321!\204c\310\322!\210\323\n! $\324\312\325\326\327\"DEE#B#\330\331\f\332\333\n#&\334 !*\207" [dir1 merge-autostore-dir jobname meta-buf file-list ediff-autostore-merges file-directory-p file-name-directory error "%S: Directory for storing merged files must be a string" nil (ediff-merge-directories ediff-merge-directories-with-ancestor ediff-merge-directory-revisions ediff-merge-directory-revisions-with-ancestor ediff-merge-filegroups-with-ancestor) read-file-name "Save merged files in directory: " ediff-strip-last-dir must-match y-or-n-p "Directory for saving merged file = directory A. Sure? " "Merge of directory revisions aborted" ediff-get-directory-files-under-revision lambda setq ediff-session-action-function quote ediff-prepare-meta-buffer ediff-filegroup-action "*Ediff Session Group Panel" ediff-redraw-directory-group-buffer ediff-show-meta-buffer metajob ediff-metajob-name ediff-use-last-dir ediff-last-merge-autostore-dir regexp action startup-hooks] 8]) #@236 Compare WIND-A and WIND-B, which are selected by clicking, wordwise. With prefix argument, DUMB-MODE, or on a non-windowing display, works as follows: If WIND-A is nil, use selected window. If WIND-B is nil, use window next to WIND-A. (defalias 'ediff-windows-wordwise #[(dumb-mode &optional wind-A wind-B startup-hooks) "\304 \n \305\306&\207" [dumb-mode wind-A wind-B startup-hooks ediff-windows ediff-windows-wordwise word-mode] 7 (#$ . 17561) "P"]) #@236 Compare WIND-A and WIND-B, which are selected by clicking, linewise. With prefix argument, DUMB-MODE, or on a non-windowing display, works as follows: If WIND-A is nil, use selected window. If WIND-B is nil, use window next to WIND-A. (defalias 'ediff-windows-linewise #[(dumb-mode &optional wind-A wind-B startup-hooks) "\304 \n \305\306&\207" [dumb-mode wind-A wind-B startup-hooks ediff-windows ediff-windows-linewise nil] 7 (#$ . 18023) "P"]) (defalias 'ediff-windows #[(dumb-mode wind-A wind-B startup-hooks job-name word-mode) "\204 \306 \204@ \307\310 !\206!\n\203\311 !\202\312 \211*\f \310 !\206;\n\2037\311 !\2029\312 \211*\202L\313 \307\314#\313\f \315#\316 !\316\f!\307\211\211\211\212\317\213\210)\320 \307&\n.\207" [dumb-mode wind-A prev-wind wind wind-B end-B ediff-window-display-p nil window-live-p next-window selected-window ediff-get-window-by-clicking 1 2 window-buffer ((byte-code "\306\307!\210\310!\210\311 \312 \310 !\210\311 \312 \306\207" [wind-A beg-A end-A wind-B beg-B end-B sit-for 0 select-window window-start window-end] 2)) ediff-regions-internal beg-B end-A beg-A buffer-B buffer-A startup-hooks job-name word-mode] 11]) #@252 Run Ediff on a pair of regions in two different buffers. Regions (i.e., point and mark) are assumed to be set in advance. This function is effective only for relatively small regions, up to 200 lines. For large regions, use `ediff-regions-linewise'. (defalias 'ediff-regions-wordwise #[(buffer-A buffer-B &optional startup-hooks) "\203\306!\203\307\306!!\204\310\311\"\210 \203)\306 !\203)\307\306 !!\204.\310\311 \"\210\312\211\211\211\212q\210\313 \314  q\210\313 \314 )\315\306! \f\306 ! \n\316\317\312&\n,\207" [buffer-A buffer-B reg-B-end reg-B-beg reg-A-end reg-A-beg get-buffer buffer-name error "Buffer %S doesn't exist" nil region-beginning region-end ediff-regions-internal ediff-regions-wordwise word-mode startup-hooks] 11 (#$ . 19243) (let (bf) (list (setq bf (read-buffer "Region's A buffer: " (ediff-other-buffer "") t)) (read-buffer "Region's B buffer: " (progn (save-window-excursion (other-window 1)) (ediff-other-buffer bf)) t)))]) #@286 Run Ediff on a pair of regions in two different buffers. Regions (i.e., point and mark) are assumed to be set in advance. Each region is enlarged to contain full lines. This function is effective for large regions, over 100-200 lines. For small regions, use `ediff-regions-wordwise'. (defalias 'ediff-regions-linewise #[(buffer-A buffer-B &optional startup-hooks) "\203\306!\203\307\306!!\204\310\311\"\210 \203)\306 !\203)\307\306 !!\204.\310\311 \"\210\312\211\211\211\212q\210\313 \314  b\210\315 \210`\fb\210\312\210m\204U\312u\210` q\210\313 \314  b\210\315 \210`\nb\210\312\210m\204u\312u\210`)\316\306! \f\306 ! \n\317\312\211&\n,\207" [buffer-A buffer-B reg-B-end reg-B-beg reg-A-end reg-A-beg get-buffer buffer-name error "Buffer %S doesn't exist" nil region-beginning region-end beginning-of-line ediff-regions-internal ediff-regions-linewise startup-hooks] 11 (#$ . 20227) (let (bf) (list (setq bf (read-buffer "Region A's buffer: " (ediff-other-buffer "") t)) (read-buffer "Region B's buffer: " (progn (save-window-excursion (other-window 1)) (ediff-other-buffer bf)) t)))]) (defalias 'ediff-regions-internal #[(buffer-A beg-A end-A buffer-B beg-B end-B startup-hooks job-name word-mode setup-parameters) "\306!\307\211\211\211 \203:\310 !\203:\311\310 !!\203:r q\210\312 !\307\223!\312 \"\307\223\")\202F#\313=\204F\314$!\210%\203t\310%!\203t\311\310%!!\203tr%q\210\312 &\307\223&\312 '\307\223')\202\200#\313=\204\200\314$!\210 %=\203\351!'W\203\230&!X\204\250&\"W\203\351\"'X\203\351(\220)\203\314\310)!\203\314\311\310)!!\203\314r)q\210\315 \210)\202\330#\313=\204\330\314$!\210\316\317!\221\210\320\321!\204\351\314\322*\"\210+\203\373\323!\" $\210\202\324!\" $\210\325 \326\"+\203\323&'% $\210\202&\324&'% $\210\325 \327\"\330!\" #\330&'%#\331 \n% \307\211\332\307\333\nD\333 DF,B\334\335+B\336\f DB\337*BE-\"&-\207" [ediff-tmp-buffer file-B file-A overl-B overl-A tmp-buffer get-buffer-create nil get-buffer buffer-name make-marker ediff-quit error fundamental-mode princ "\nYou have requested to compare overlapping regions of the same buffer.\n\nIn this case, Ediff's highlighting may be confusing---in the same window,\nyou may see highlighted regions that belong to different regions.\n\nContinue anyway? (y/n) " y-or-n-p "Continue anyway? " "%S aborted" ediff-wordify ediff-copy-to-buffer ediff-make-temp-file "regA" "regB" ediff-make-bullet-proof-overlay ediff-setup lambda delete-file append ediff-word-mode ediff-narrow-bounds ediff-job-name buffer-A beg-A end-A this-command ediff-KILLED-VITAL-BUFFER buffer-B beg-B end-B ediff-msg-buffer standard-output job-name word-mode startup-hooks setup-parameters] 13]) (defalias 'ediff-merge 'ediff-merge-files) (defalias 'ediff-merge-on-startup #[nil "\303\304!\210\203\305!\203\306\305!!\203rq\210\307\310!)\207 \311=\206(\312\n!\207" [ediff-buffer-C this-command ediff-KILLED-VITAL-BUFFER ediff-do-merge 0 get-buffer buffer-name set-buffer-modified-p nil ediff-quit error] 3]) (put 'ediff-merge-on-startup 'byte-optimizer 'byte-compile-inline-expand) #@35 Merge two files without ancestor. (defalias 'ediff-merge-files #[(file-A file-B &optional startup-hooks merge-buffer-file) "\304B\305 \306\n!\203\307\310 !\n\"\202\n\311\312 &\207" [startup-hooks file-A file-B merge-buffer-file ediff-merge-on-startup ediff-files-internal file-directory-p expand-file-name file-name-nondirectory nil ediff-merge-files] 7 (#$ . 23406) (let ((dir-A (if ediff-use-last-dir ediff-last-dir-A default-directory)) dir-B f) (list (setq f (ediff-read-file-name "File A to merge" dir-A (ediff-get-default-file-name))) (ediff-read-file-name "File B to merge" (setq dir-B (if ediff-use-last-dir ediff-last-dir-B (file-name-directory f))) (progn (setq file-name-history (cons (ediff-abbreviate-file-name (expand-file-name (file-name-nondirectory f) dir-B)) file-name-history)) (ediff-get-default-file-name f 1)))))]) #@32 Merge two files with ancestor. (defalias 'ediff-merge-files-with-ancestor #[(file-A file-B file-ancestor &optional startup-hooks merge-buffer-file) "\305B\306 \307\n!\203\310\311 !\n\"\202\n \312\f&\207" [startup-hooks file-A file-B file-ancestor merge-buffer-file ediff-merge-on-startup ediff-files-internal file-directory-p expand-file-name file-name-nondirectory ediff-merge-files-with-ancestor] 7 (#$ . 24257) (let ((dir-A (if ediff-use-last-dir ediff-last-dir-A default-directory)) dir-B dir-ancestor f ff) (list (setq f (ediff-read-file-name "File A to merge" dir-A (ediff-get-default-file-name))) (setq ff (ediff-read-file-name "File B to merge" (setq dir-B (if ediff-use-last-dir ediff-last-dir-B (file-name-directory f))) (progn (setq file-name-history (cons (ediff-abbreviate-file-name (expand-file-name (file-name-nondirectory f) dir-B)) file-name-history)) (ediff-get-default-file-name f 1)))) (ediff-read-file-name "Ancestor file" (setq dir-ancestor (if ediff-use-last-dir ediff-last-dir-ancestor (file-name-directory ff))) (progn (setq file-name-history (cons (ediff-abbreviate-file-name (expand-file-name (file-name-nondirectory ff) dir-ancestor)) file-name-history)) (ediff-get-default-file-name ff 2)))))]) (defalias 'ediff-merge-with-ancestor 'ediff-merge-files-with-ancestor) #@33 Merge buffers without ancestor. (defalias 'ediff-merge-buffers #[(buffer-A buffer-B &optional startup-hooks job-name merge-buffer-file) "\305B \204\n\306\307\n \310 \f&\207" [startup-hooks job-name buffer-A buffer-B merge-buffer-file ediff-merge-on-startup ediff-merge-buffers ediff-buffers-internal nil] 7 (#$ . 25566) (let (bf) (list (setq bf (read-buffer "Buffer A to merge: " (ediff-other-buffer "") t)) (read-buffer "Buffer B to merge: " (progn (save-window-excursion (other-window 1)) (ediff-other-buffer bf)) t)))]) #@30 Merge buffers with ancestor. (defalias 'ediff-merge-buffers-with-ancestor #[(buffer-A buffer-B buffer-ancestor &optional startup-hooks job-name merge-buffer-file) "\306B \204\n\307\310\n \f &\207" [startup-hooks job-name buffer-A buffer-B buffer-ancestor merge-buffer-file ediff-merge-on-startup ediff-merge-buffers-with-ancestor ediff-buffers-internal] 7 (#$ . 26101) (let (bf bff) (list (setq bf (read-buffer "Buffer A to merge: " (ediff-other-buffer "") t)) (setq bff (read-buffer "Buffer B to merge: " (progn (save-window-excursion (other-window 1)) (ediff-other-buffer bf)) t)) (read-buffer "Ancestor buffer: " (progn (save-window-excursion (other-window 1)) (ediff-other-buffer (list bf bff))) t)))]) #@129 Run Ediff by merging two revisions of a file. The file is the optional FILE argument or the file visited by the current buffer. (defalias 'ediff-merge-revisions #[(&optional file startup-hooks merge-buffer-file) ";\203 \306!\210\307\211\310\311\312;\203\313!\202\314\"!\310\311\315;\203-\313!\202.\314\"!\316 \210\317\311\320 \"!\n \307\f %*\207" [file rev2 rev1 ediff-version-control-package startup-hooks merge-buffer-file find-file nil read-string format "Version 1 to merge (default: %s's latest version): " file-name-nondirectory "current buffer" "Version 2 to merge (default: %s): " ediff-load-version-control intern "ediff-%S-merge-internal"] 6 (#$ . 26822) nil]) #@152 Run Ediff by merging two revisions of a file with a common ancestor. The file is the optional FILE argument or the file visited by the current buffer. (defalias 'ediff-merge-revisions-with-ancestor #[(&optional file startup-hooks merge-buffer-file) ";\203 \306!\210\307\211\211\310\311\312;\203\313!\202\314\"!\310\311\315;\203/\313!\2020\314\"!\310\311\316;\203A\313!\202B\314\"!\317 \210\320\311\321\f\"! \n %+\207" [file ancestor-rev rev2 rev1 ediff-version-control-package startup-hooks find-file nil read-string format "Version 1 to merge (default: %s's latest version): " file-name-nondirectory "current buffer" "Version 2 to merge (default: %s): " "Ancestor version (default: %s's base revision): " ediff-load-version-control intern "ediff-%S-merge-internal" merge-buffer-file] 6 (#$ . 27517) nil]) #@191 Run Ediff-merge on appropriate revisions of the selected file. First run after `M-x cvs-update'. Then place the cursor on a line describing a file and then run `run-ediff-from-cvs-buffer'. (defalias 'run-ediff-from-cvs-buffer #[(pos) "\303 \210\304 \"\211\203\305\n!\202\306\307!)\207" [cvs-cookie-handle pos tin ediff-load-version-control tin-locate cvs-run-ediff-on-file-descriptor error "There is no file to merge"] 4 (#$ . 28356) "d"]) #@241 Run Ediff by patching SOURCE-FILENAME. If optional PATCH-BUF is given, use the patch in that buffer and don't ask the user. If prefix argument, then: if even argument, assume that the patch is in a buffer. If odd -- assume it is in a file. (defalias 'ediff-patch-file #[(&optional arg patch-buf) "\306\211\307\310!\210\311\n\205\312\n! \"\f\203 \2022\2040\313 !\2030\314\315\313 !!!\2022\316\317 \306\211\320 %\321 \"*\207" [source-file source-dir arg patch-buf ediff-use-last-dir ediff-last-dir-patch nil require ediff-ptch ediff-get-patch-buffer prefix-numeric-value buffer-file-name file-name-directory expand-file-name read-file-name "File to patch (directory, if multifile patch): " ediff-get-default-file-name ediff-dispatch-file-patching-job ediff-patch-default-directory default-directory] 6 (#$ . 28810) "P"]) #@316 Run Ediff by patching BUFFER-NAME. Without prefix argument: asks if the patch is in some buffer and prompts for the buffer or a file, depending on the answer. With prefix arg=1: assumes the patch is in a file and prompts for the file. With prefix arg=2: assumes the patch is in a buffer and prompts for the buffer. (defalias 'ediff-patch-buffer #[(&optional arg patch-buf) "\302\303!\210\304\205\f\305! \"\306 \307\310p\"\"\207" [arg patch-buf require ediff-ptch ediff-get-patch-buffer prefix-numeric-value ediff-patch-buffer-internal read-buffer "Which buffer to patch? "] 5 (#$ . 29654) "P"]) (byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias epatch ediff-patch-file epatch-buffer ediff-patch-buffer] 3) #@237 Run Ediff by comparing versions of a file. The file is an optional FILE argument or the file entered at the prompt. Default: the file visited by the current buffer. Uses `vc.el' or `rcs.el' depending on `ediff-version-control-package'. (defalias 'ediff-revision #[(&optional file startup-hooks) ";\204\306\307 \203\n\202 \310 #\311!\210\312 \203+\313\314\315\316 \"!\203+\317p!\210\320\211\321\322\323\324!\"!\321\322\325\324!\"!\326 \210\327\322\330\"! \f#*\207" [file ediff-use-last-dir ediff-last-dir-A default-directory rev2 rev1 ediff-read-file-name "Compare revisions for file" ediff-get-default-file-name find-file buffer-modified-p y-or-n-p message "Buffer %s is modified. Save buffer? " buffer-name save-buffer nil read-string format "Version 1 to compare (default: %s's latest version): " file-name-nondirectory "Version 2 to compare (default: %s): " ediff-load-version-control intern "ediff-%S-internal" ediff-version-control-package startup-hooks] 5 (#$ . 30381) "P"]) (defalias 'erevision 'ediff-revision) (defalias 'ediff-load-version-control #[(&optional silent) "\302\303!\210\304!\206\"\305\306!!\203\307\310!\210\302!\207 \206\"\311\312\"\207" [ediff-version-control-package silent require ediff-vers featurep locate-library symbol-name message "" error "Version control package %S.el not found. Use vc.el instead"] 3]) #@97 Return string describing the version of Ediff. When called interactively, displays the version. (defalias 'ediff-version #[nil "t\203 \302\300 !\207\303\304 #\207" [ediff-version ediff-date message format "Ediff %s of %s"] 4 (#$ . 31755) nil]) #@64 Display Ediff's manual. With optional NODE, goes to that node. (defalias 'ediff-documentation #[(&optional node) " \304 \210\305\306\307\217*\207" [ediff-control-window ediff-control-buffer ctl-buf ctl-window ediff-skip-unsuitable-frames nil (byte-code "\302\303\304!!\210\305\203\306\202\307!\210 \203\310 !\210\202!\311\312!\210\313\314 !\207" [ediff-xemacs-p node pop-to-buffer get-buffer-create "*info*" info "ediff.info" "ediff" Info-goto-node message "Type `i' to search for a specific topic" raise-frame selected-frame] 3) ((error (byte-code "\306\307!\210\220 \203#\310 !\203#\311\310 !!\203#r q\210\312 \210)\202-\n\313=\204-\314 !\210\315\f!\221\210\316 !\205A\317 !\210\320 \"\207" [ediff-msg-buffer standard-output this-command ediff-KILLED-VITAL-BUFFER ediff-BAD-INFO ctl-window beep 1 get-buffer buffer-name fundamental-mode ediff-quit error princ window-live-p select-window set-window-buffer ctl-buf] 4)))] 3 (#$ . 32007) nil]) (byte-code "\300\301!\210\302\303!\207" [require ediff-util run-hooks ediff-load-hook] 2)