;ELC   
;;; Compiled by rms@psilocin.ai.mit.edu on Sat Jun  6 14:03:30 1998
;;; from file /gd/gnu/emacs/lisp/ediff.el
;;; in Emacs version 20.2.94.1
;;; with bytecomp version 2.45
;;; 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.70.2" (#$ . 598))
#@21 Date of last update
(defconst ediff-date "May 21, 1998" (#$ . 678))
(byte-code "\303\304!\210\305B\306B\307B\310\311!\210\310\312!\210\313\304\314\315	\316\n\317&\207" [current-load-list :tag :group 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" "Ediff" tools] 8)
#@77 *If t, Ediff will use previous directory as default when reading file name.
(custom-declare-variable 'ediff-use-last-dir 'nil '(#$ . -1097) :type 'boolean :group 'ediff)
(byte-code "\305\300!\204 \306\300	B\305\302!\204 \306\302	B\305\303!\204  \306\303	B\305\304!\204, \306\304	B\307	B\306\207" [ediff-last-dir-A current-load-list 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!!\203 rq\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 #[nil "\302=\203 \303\304\305\"\211;\205 \306	!?\205 	)\207\307p!\205% \310\307p!!\207" [major-mode f dired-mode dired-get-filename nil no-error file-directory-p buffer-file-name file-name-nondirectory] 4])
#@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 (#$ . 2049) (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)) f))))])
#@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 (#$ . 2804) (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)) f))) (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)) ff))))])
(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\234 rJq\210~\210\n\203t \321\322!\210\323p\"\324\325\326	DEJBL\210\202\230 \327	!\327\330 !\232\204\225 \323p\"\324\325\326	DEJBL\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\321BC&	+\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 (#$ . 5460) (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 (#$ . 5975) (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\320D\320D\321\322D\320DE\257B\323BC&	.\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])
#@204 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 (#$ . 7831) (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)
#@228 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 (#$ . 8588) (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)
#@211 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 (#$ . 9274) (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)
#@202 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) "\303	\304\n\305\306&\207" [dir1 dir2 regexp ediff-directories-internal nil ediff-merge-files ediff-merge-directories] 7 (#$ . 10174) (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)
#@361 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) "\304	\n\305\306&\207" [dir1 dir2 ancestor-dir regexp ediff-directories-internal ediff-merge-files-with-ancestor ediff-merge-directories-with-ancestor] 7 (#$ . 10956) (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)))])
#@226 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) "\302	\303\304$\207" [dir1 regexp ediff-directory-revisions-internal ediff-merge-revisions ediff-merge-directory-revisions] 5 (#$ . 12033) (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)
#@240 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) "\302	\303\304$\207" [dir1 regexp ediff-directory-revisions-internal ediff-merge-revisions-with-ancestor ediff-merge-directory-revisions-with-ancestor] 5 (#$ . 12748) (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) "\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\315\211\211\211#$\203\223 \211%\206z &\316>)\203\223 \317\320'\203\214 (\202\217 \321!\315###;\203\341 ;\203\262 #\230\203\262 \322\323!\204\341 \310\324!\210\202\341 	;\203\313 #	\230\203\313 \322\325!\204\341 \310\324!\210\202\341 \n;\203\341 #\n\230\203\341 \322\326!\204\341 \310\324!\210\327\330)	\n#&\331\315\332\333\334*DE\332\335\334DEF+B+\336\337\340\341+&\342\f!,\207" [dir1 dir2 dir3 jobname meta-buf file-list 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" nil (ediff-merge-directories ediff-merge-directories-with-ancestor ediff-merge-directory-revisions ediff-merge-directory-revisions-with-ancestor ediff-merge-filegroups-with-ancestor) ediff-read-file-name "Directory to save merged files:" ediff-strip-last-dir y-or-n-p "Merge directory same as directory A, sure? " "Directory merge aborted" "Merge directory same as directory B, sure? " "Merge directory same as 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 merge-autostore-dir 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) "\306!\203\n \202 \307!\310\211\211\f\2039 \211\206! \311>)\2039 \312\313\2033 \2026 \314!\310#	;\203S ;\203S 	\230\203S \315\316!\204S \317\320!\210\321	$\322\310\323\324\325 DEE!B!\326\327\330\331!&\332\n!+\207" [dir1 merge-autostore-dir meta-buf file-list ediff-autostore-merges jobname file-directory-p file-name-directory nil (ediff-merge-directories ediff-merge-directories-with-ancestor ediff-merge-directory-revisions ediff-merge-directory-revisions-with-ancestor ediff-merge-filegroups-with-ancestor) ediff-read-file-name "Directory to save merged files:" ediff-strip-last-dir y-or-n-p "Directory for saving merges is the same as directory A. Sure? " error "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 (#$ . 16640) "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 (#$ . 17102) "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])
#@251 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\212q\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 (#$ . 18322) (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)))])
#@285 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\212q\210\313 \314 b\210\315y\210`\fb\210\312\210m\204U \312u\210`	q\210\313 \314 b\210\315y\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 0 ediff-regions-internal ediff-regions-linewise startup-hooks] 11 (#$ . 19305) (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$!!\203t r$q\210\312 %\307\223%\312 &\307\223&)\202\200 \"\313=\204\200 \314#!\210$=\203\274  &W\203\230 % X\204\250 %!W\203\274 !&X\203\274 '\220\315\316!\221\210\317\320!\204\274 \314\321(\"\210)\203\316 \322 !$\210\202\330 \323 !$\210\324\325\")\203\357 \322%&$$\210\202\371 \323%&$$\210\324\326\"\327 !#\327%&$#\330\n$	\307\211\331\307\332\nD\332	DF*B\333\334)B\335\fDB\336(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 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 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!!\203 rq\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) "\304B\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 (#$ . 22336) (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)) f))))])
#@32 Merge two files with ancestor.
(defalias 'ediff-merge-files-with-ancestor #[(file-A file-B file-ancestor &optional startup-hooks merge-buffer-file) "\305B\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 (#$ . 23155) (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)) f))) (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)) ff))))])
(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) "\305B	\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 (#$ . 24400) (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) "\306B	\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 (#$ . 24935) (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 (#$ . 25656) nil])
#@156 Run Ediff by merging two revisions of a file with a common ancestor.
The file is the 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): " ediff-load-version-control intern "ediff-%S-merge-internal" merge-buffer-file] 6 (#$ . 26351) nil])
#@190 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 (#$ . 27178) "d"])
#@40 Run Ediff by patching SOURCE-FILENAME.
(defalias 'ediff-patch-file #[nil "\306\211\211\307\310!\210\311 \203 \f\202+ \204) \312!\203) \313\314\312!!!\202+ \315\316\n\317 #\320	\"+\207" [patch-buf source-file source-dir ediff-use-last-dir ediff-last-dir-patch ediff-patch-default-directory nil require ediff-ptch ediff-get-patch-buffer buffer-file-name file-name-directory expand-file-name ediff-read-file-name "Which file to patch? " ediff-get-default-file-name ediff-dispatch-file-patching-job default-directory] 4 (#$ . 27630) nil])
#@36 Run Ediff by patching BUFFER-NAME.
(defalias 'ediff-patch-buffer #[nil "\301\302\303!\210\304 \305\306\307p=\203 \310p!\202 p\311#\")\207" [patch-buf nil require ediff-ptch ediff-get-patch-buffer ediff-patch-buffer-internal read-buffer "Which buffer to patch? " ediff-other-buffer must-match] 6 (#$ . 28185) nil])
(byte-code "\300\301\302\"\210\300\303\304\"\207" [defalias epatch ediff-patch-file epatch-buffer ediff-patch-buffer] 3)
#@195 Run Ediff by comparing versions of a file.
The file is an optional FILE argument or the file visited by the current
buffer. Use `vc.el' or `rcs.el' depending on `ediff-version-control-package'.
(defalias 'ediff-revision #[(&optional file startup-hooks) ";\203	 \305!\210\306\211\307\310\311;\203 \312!\202 \313\"!\307\310\314;\203- \312!\202. \313\"!\315 \210\316\310\317\"!\n	\f#*\207" [file rev2 rev1 ediff-version-control-package startup-hooks find-file nil read-string format "Version 1 to compare (default: %s's latest version): " file-name-nondirectory "current buffer" "Version 2 to compare (default: %s): " ediff-load-version-control intern "ediff-%S-internal"] 5 (#$ . 28633) "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 (#$ . 29708) 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 "\304\305!\210\220\306	!\221\210\307\n!\205 \310\n!\210\311\n\"\207" [ediff-msg-buffer ediff-BAD-INFO ctl-window ctl-buf beep 1 princ window-live-p select-window set-window-buffer] 3)))] 3 (#$ . 29960) nil])
(require 'ediff-util)
