;ELC   
;;; compiled by rms@mole.gnu.ai.mit.edu on Wed Nov 22 06:16:06 1995
;;; from file /home/fsf/rms/e19/lisp/ediff.el
;;; emacs version 19.29.91.3.
;;; bytecomp version FSF 2.10
;;; optimization is on.
;;; this file uses opcodes which do not exist in Emacs 18.

(if (and (boundp 'emacs-version)
	 (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.47" (#$ . 468))
#@21 Date of last update
(defconst ediff-date "October 11, 1995" (#$ . 546))
(byte-code "ÀÁ!ˆÀÂ!‡" [require ediff-init ediff-mult] 2)
#@73 *If t, Ediff uses previous directory as default when reading file name.
(defvar ediff-use-last-dir nil (#$ . -681))
#@53 Last directory used by an Ediff command for file-A.
(defvar ediff-last-dir-A nil (#$ . 803))
#@53 Last directory used by an Ediff command for file-B.
(defvar ediff-last-dir-B nil (#$ . 902))
#@53 Last directory used by an Ediff command for file-C.
(defvar ediff-last-dir-C nil (#$ . 1001))
#@64 Last directory used by an Ediff command for the ancestor file.
(defvar ediff-last-dir-ancestor nil (#$ . 1101))
#@60 Last directory used by an Ediff command for file to patch.
(defvar ediff-last-dir-patch nil (#$ . 1219))
#@49 Default backup extension for the patch program.
(defvar ediff-backup-extension (byte-code "Á>ƒ Â‡Ã‡" [system-type (vax-vms axp-vms emx ms-dos windows-nt windows-95) "_orig" ".orig"] 2) (#$ . 1330))
#@38 Run Ediff by patching FILE-TP-PATCH.
(defalias 'ediff-patch-file #[(source-filename &optional startup-hooks job-name) "À	!ÂÄ=ƒ@ pÆ	!ƒ2 ÇÆ	!!ƒ2 ÈÇÆ	!!!ƒ2 ÉŽÆ	!qˆ\n)‚< Ì=†< ÍÎ!)‚C Ï	!!ˆÑÒ\"ƒT Ó•‚U ÓÑÔ\"ƒb Ó•‚c ÓO		ÚÚÚÚß˜ƒ‡  áØÜâã$ˆä!ä	!š?å!‰&;…¹ ç&!…¹ è&!?…¹ ç&éP!)ƒÂ ê!ˆp+ƒú Ç+!ƒú ÈÇ+!!ƒú ìŽ+qˆíî!ˆïedðñ2À!%ó$ˆ)‚Ì=„ÍÎ!ˆ)ô+!ˆõÓ!ˆçP!„Íö!ˆ„]pƒNÇ!ƒNÈÇ!!ƒN÷Žqˆø	P!ˆùÚ!ˆ)‚YÌ=„YÍÎ!ˆ)‚�ä	!:û<!…n<:!)ƒw‚x	ýPþó#ˆþPó#ˆÿ#B#�@ !�A Ú#†®�B %�C +!ˆí�D È+!\"ˆ.‡" [expand-file-name source-filename ediff-get-patch-buffer job-name ediff-patch-buffer StartBuffer get-file-buffer get-buffer buffer-name ((set-buffer StartBuffer)) default-directory this-command ediff-quit error "You've killed an essential Ediff buffer---Please quit Ediff" file-name-directory ediff-patch-options string-match "-b[ 	]+" 0 "-b[ 	]+[^ 	]+" backup-extension ediff-shell shell-file-name true-source-filename target-filename nil target-buf buf-to-patch file-name-magic-p ctl-buf "" ediff-backup-extension ediff-find-file ediff-last-dir-patch startup-hooks file-truename buffer-file-name file file-exists-p file-writable-p ",v" ediff-toggle-read-only ediff-patch-diagnostics ((set-buffer StartBuffer)) message "Applying patch ... " shell-command-on-region format "%s -f %s -b %s %s" ediff-patch-program t switch-to-buffer sit-for "Patch failed or didn't modify the original file" ((set-buffer StartBuffer)) set-visited-file-name set-buffer-modified-p file-name fboundp ediff-ange-ftp-ftp-name "_patched" rename-file ediff-set-read-only-in-buf-A find-file-noselect ediff-buffers-internal ediff-patch-file bury-buffer "Patch diagnostics are available in buffer %s"] 11 (#$ . 1536) (list (ediff-read-file-name "File to patch" (if ediff-use-last-dir ediff-last-dir-patch default-directory) (ediff-get-default-file-name)))])
#@61 Used as a startup hook to set `_orig' patch file read-only.
(defalias 'ediff-set-read-only-in-buf-A #[nil "p	ƒ  Â	!ƒ  ÃÂ	!!ƒ  ÄŽ	qˆÅÆ!)‚* È=†* ÉÊ!)‡" [StartBuffer ediff-buffer-A get-buffer buffer-name ((set-buffer StartBuffer)) toggle-read-only 1 this-command ediff-quit error "You've killed an essential Ediff buffer---Please quit Ediff"] 3 (#$ . 3452)])
(defalias 'ediff-get-default-file-name #[nil "Á=ƒ ÂÃÄ\"‰;… Æ!?… )‡Çp!…% ÈÇp!!‡" [major-mode dired-mode dired-get-filename nil no-error f file-directory-p buffer-file-name file-name-nondirectory] 4])
(byte-code "ÀÁÂ\"ˆÀÃÄ\"‡" [defalias epatch ediff-patch-file epatch-buffer ediff-patch-buffer] 3)
#@50 Run Ediff on a pair of files, FILE-A and FILE-B.
(defalias 'ediff-files #[(file-A file-B &optional startup-hooks) "À	Â!ƒ ÄÅ	!\"‚ ÆÈ%‡" [ediff-files-internal file-A file-directory-p file-B expand-file-name file-name-nondirectory nil startup-hooks ediff-files] 6 (#$ . 4120) (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) "À	Â!ƒ ÄÅ	!\"‚ Â!ƒ# ÄÅ	!\"‚% È%‡" [ediff-files-internal file-A file-directory-p file-B expand-file-name file-name-nondirectory file-C startup-hooks ediff-files3] 6 (#$ . 4848) (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 (quote ediff3) (quote ediff-files3))
#@497 Visit FILE and arrange its buffer to Ediff's liking. 
FILE is actually a variable symbol that must contain a true file name.
BUFFER-NAME is a variable symbol, which will get the buffer object into which
FILE is read.  LAST-DIR is the directory variable symbol where FILE's
directory name should be returned. HOOKS is a variable symbol that will be
assigned the hook to be executed after `ediff-startup' is finished.
`ediff-find-file' arranges that the temp files it might create will be
deleted.
(defalias 'ediff-find-file #[(file-var buffer-name &optional last-dir hooks-var) "JÂ	Ã\"Å	!Ç	!„ ÈÉ	\"ˆ‚& Ê	!ƒ& ÈË	\"ˆÌ	!ƒ8 ÌÎ	!!LˆÃ	!LˆpJƒ« ÑJ!ƒ« ÏÑJ!!ƒ« ÒŽJqˆ~ˆ\fƒ‚ ÓÔ!ˆÕp\"×ØÙ	DEJBLˆ‚§ Ú	!ÚÛ !š„¤ Õp\"×ØÙ	DEJBLˆ‚§ Ó ˆ)‚¶ Ý=„¶ ÈÞ!ˆ)	L+‡" [file-var file find-file-name-handler find-file-noselect file-magic file-name-nondirectory temp-file-name-prefix file-readable-p error "File `%s' does not exist or is not readable" file-directory-p "File `%s' is a directory" expand-file-name last-dir file-name-directory buffer-name StartBuffer get-buffer ((set-buffer StartBuffer)) ediff-verify-file-buffer magic ediff-make-temp-file hooks-var lambda nil delete-file file-truename buffer-file-name this-command ediff-quit "You've killed an essential Ediff buffer---Please quit Ediff"] 5 (#$ . 5944)])
(defalias 'ediff-files-internal #[(file-A file-B file-C startup-hooks job-name) "À‰‰ÄÅ\"ˆÇÆÃÈÉ$ˆÄÅ\n\"ˆÇÊÂËÉ$ˆ\f;ƒ> ÄÅ\f\"ˆÇÌÁÎ=ƒ: Ï‚; ÐÉ$ˆÑ\n\n	\f	ÒBC&+‡" [nil buf-C buf-B buf-A message "Reading file %s ... " file-A ediff-find-file ediff-last-dir-A startup-hooks file-B ediff-last-dir-B file-C job-name ediff-merge-files-with-ancestor ediff-last-dir-ancestor ediff-last-dir-C ediff-setup ediff-job-name] 10])
(defalias (quote ediff) (quote 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) "„ ÁÂ\fÅ%‡" [job-name ediff-buffers ediff-buffers-internal buffer-A buffer-B nil startup-hooks] 6 (#$ . 7750) (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)))])
#@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) "„ ÁÂ\f%‡" [job-name ediff-buffers3 ediff-buffers-internal buffer-A buffer-B buffer-C startup-hooks] 6 (#$ . 8215) (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 'ediff-buffers-internal #[(buf-A buf-B buf-C startup-hooks job-name) "ÀÁ\n!!ÀÁ\f!!… Á!… ÇÁ!!‰…) ÀÁ\f!!	ÊÊ\fÊ\nƒF Á\n!ƒF ÇÁ\n!!„K ÎÏ\n\"ˆ\fƒ] Á\f!ƒ] ÇÁ\f!!„b ÎÏ\f\"ˆƒv „v ÎÏ\"ˆ);ƒ€ Ó!;ƒ‰ Ó!	;ƒ• Ó	!	Ô\n\"Ô\f\"\fƒ® Ô	\"ÕÁ\n!Á\f!\f…Â Á!ÖÊ×D×\fDØÙD×DE¯BÑBC&.‡" [buffer-file-name get-buffer buf-A buf-A-file-name buf-B buf-B-file-name buf-C buffer-name buf-C-is-alive buf-C-file-name nil file-A file-B file-C error "Buffer %S doesn't exist" job-name ediff-job-name ediff-3way-comparison-job file-name-nondirectory ediff-make-temp-file ediff-setup lambda delete-file if stringp startup-hooks] 16])
(defalias 'ediff-get-default-directory-name #[nil "ƒ 	‡\nÃ=ƒ' ÄÅÆ\"‰;ƒ# È!ƒ# ‚% 	)‡	‡" [ediff-use-last-dir ediff-last-dir-A major-mode dired-mode dired-get-filename nil noerror f file-directory-p default-directory] 4])
#@190 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
further filters the file names.
(defalias 'ediff-directories #[(dir1 dir2 regexp) "À	\nÃ\fÅÆ&‡" [ediff-directories-internal dir1 dir2 nil regexp ediff-files ediff-directories] 7 (#$ . 9745) (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 (quote edirs) (quote 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) "À	\nÃÄ$‡" [ediff-directory-revisions-internal dir1 regexp ediff-revision ediff-directory-revisions] 5 (#$ . 10485) (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 (quote edir-revisions) (quote ediff-directory-revisions))
#@197 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 further filters the file names.
(defalias 'ediff-directories3 #[(dir1 dir2 dir3 regexp) "À	\n\fÅÆ&‡" [ediff-directories-internal dir1 dir2 dir3 regexp ediff-files3 ediff-directories3] 7 (#$ . 11173) (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 (quote edirs3) (quote ediff-directories3))
#@188 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
further filters the file names.
(defalias 'ediff-merge-directories #[(dir1 dir2 regexp) "À	\nÃ\fÅÆ&‡" [ediff-directories-internal dir1 dir2 nil regexp ediff-merge-files ediff-merge-directories] 7 (#$ . 12059) (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 (quote edirs-merge) (quote ediff-merge-directories))
#@188 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
further filters the file names.
(defalias 'ediff-merge-directories-with-ancestor #[(dir1 dir2 dir3 regexp) "À	\n\fÅÆ&‡" [ediff-directories-internal dir1 dir2 dir3 regexp ediff-merge-files-with-ancestor ediff-merge-directories-with-ancestor] 7 (#$ . 12824) (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) "À	\nÃÄ$‡" [ediff-directory-revisions-internal dir1 regexp ediff-merge-revisions ediff-merge-directory-revisions] 5 (#$ . 13699) (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 (quote edir-merge-revisions) (quote 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) "À	\nÃÄ$‡" [ediff-directory-revisions-internal dir1 regexp ediff-merge-revisions-with-ancestor ediff-merge-directory-revisions-with-ancestor] 5 (#$ . 14415) (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 "ÀÁÂ\"ˆÀÃÄ\"‡" [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) "À	!ƒ\n 	‚ Â	!À!ƒ ‚ Â!\f;ƒ/ À\f!ƒ+ \f‚. Â\f!	˜ƒ= ÅÆ	\"ˆ‚d È=ƒR 	\f˜ƒR ÅÉ	\"ˆ‚d È=ƒd \f˜ƒd ÅÊ	\"ˆË‰‰\fÏÎ	\f&ÑËÒÓÔDEÒÖÔDEFBØÙÚÛ&\fÜ\f!+‡" [file-directory-p dir1 file-name-directory dir2 dir3 error "Directories A and B are the same: %s" jobname ediff-directories3 "Directories A and C are the same: %s" "Directories B and C are the same: %s" nil meta-buf file-list diffs ediff-intersect-directories regexp lambda setq ediff-session-action-function quote action ediff-dir-difference-list startup-hooks ediff-prepare-meta-buffer ediff-dir-action "*Ediff Session Group Panel" ediff-redraw-directory-group-buffer ediff-show-meta-buffer] 7])
(defalias 'ediff-directory-revisions-internal #[(dir1 regexp action jobname &optional startup-hooks) "À	!ƒ\n 	‚ Â	!Ã‰Æ	#ÉÃÊËÌDEEBÏÐÑÒ&Ó\f!*‡" [file-directory-p dir1 file-name-directory nil meta-buf file-list ediff-get-directory-files-under-revision jobname regexp lambda setq ediff-session-action-function quote action startup-hooks ediff-prepare-meta-buffer ediff-dir-action "*Ediff Session Group Panel" ediff-redraw-directory-group-buffer ediff-show-meta-buffer] 7])
#@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) "À	\n\fÅÆ&‡" [ediff-windows dumb-mode wind-A wind-B startup-hooks ediff-windows-wordwise word-mode] 7 (#$ . 16579) "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) "À	\n\fÅÆ&‡" [ediff-windows dumb-mode wind-A wind-B startup-hooks ediff-windows-linewise nil] 7 (#$ . 17030) "P"])
(defalias 'ediff-windows #[(dumb-mode wind-A wind-B startup-hooks job-name word-mode) "„$ 	ƒ\f \n‚ ÃÄ !ƒ$ 	ƒ \n‚ ÃÄ !Å>ƒl Ç	Ê	!†C ƒ> Ë	!‚@ Ì ‰	*	Ê	!†f ƒa Ë	!‚c Ì ‰	*‚} ÎÇÏ#ÎÐ#Ñ!Ñ!Ç‰‰‰ŠØ‹ˆ)Ù&	.‡" [dumb-mode ediff-emacs-p window-system device-type selected-device (tty stream) wind-A nil prev-wind wind window-live-p next-window selected-window wind-B ediff-get-window-by-clicking 1 2 window-buffer end-B beg-B end-A beg-A buffer-B buffer-A ((byte-code "ÀÁ!ˆÂ!ˆÄ Æ Â!ˆÄ 	Æ \nÀ‡" [sit-for 0 select-window wind-A window-start beg-A window-end end-A wind-B beg-B end-B] 2)) ediff-regions-internal startup-hooks job-name word-mode] 10])
#@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) "ƒ Á!ƒ ÂÁ!!„ ÃÄ\"ˆƒ) Á!ƒ) ÂÁ!!„. ÃÄ\"ˆÆ‰‰‰	\nŠqˆË \nÌ 	qˆË Ì )ÍÁ!\n	Á!ÏÐ&	,‡" [buffer-A get-buffer buffer-name error "Buffer %S doesn't exist" buffer-B nil reg-B-end reg-B-beg reg-A-end reg-A-beg region-beginning region-end ediff-regions-internal startup-hooks ediff-regions-wordwise word-mode] 10 (#$ . 18189) (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) "ƒ Á!ƒ ÂÁ!!„ ÃÄ\"ˆƒ) Á!ƒ) ÂÁ!!„. ÃÄ\"ˆÆ‰‰‰	\nŠqˆË \nÌ 	\nbˆÍyˆ`\n	bˆÆˆm„^ Æuˆ`	qˆË Ì \nbˆbˆÍyˆ`bˆÆˆm„ˆ Æuˆ`)ÎÁ!\n	Á!ÐÆ&	,‡" [buffer-A get-buffer buffer-name error "Buffer %S doesn't exist" buffer-B nil reg-B-end reg-B-beg reg-A-end reg-A-beg region-beginning region-end 0 ediff-regions-internal startup-hooks ediff-regions-linewise] 10 (#$ . 19075) (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) "À	!Â‰‰‰p	ƒ@ Ê	!ƒ@ ËÊ	!!ƒ@ ÌŽ	qˆÍ Â“Í Â“)‚K Ñ=„K ÒÓ!ˆ)pƒ~ Ê!ƒ~ ËÊ!!ƒ~ ÕŽqˆÍ Â“Í Â“)‚‰ Ñ=„‰ ÒÓ!ˆ)	=ƒÆ Wƒ¢ X„² WƒÆ XƒÆ �ÙÚ!‘ˆÛÜ!„Æ ÒÝ\"ˆƒÙ à	$ˆ‚ä á	$ˆâã\"ƒý à$ˆ‚á$ˆâä\"å	#å#æ	\fÂ‰çÂè\fDèDF)BêBëDBìBE&-‡" [get-buffer-create ediff-tmp-buffer nil file-B file-A overl-B overl-A tmp-buffer StartBuffer buffer-A get-buffer buffer-name ((set-buffer StartBuffer)) make-marker beg-A end-A this-command ediff-quit error "You've killed an essential Ediff buffer---Please quit Ediff" buffer-B ((set-buffer StartBuffer)) beg-B end-B ediff-msg-buffer 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" job-name word-mode ediff-wordify ediff-copy-to-buffer ediff-make-temp-file "regA" "regB" ediff-make-bullet-proof-overlay ediff-setup lambda delete-file startup-hooks ediff-word-mode ediff-narrow-bounds ediff-job-name] 12])
(defalias (quote ediff-merge) (quote ediff-merge-files))
(defalias 'ediff-merge-on-startup #[nil "ÀÁ!ˆpƒ$ Ä!ƒ$ ÅÄ!!ƒ$ ÆŽqˆÇÈ!)‚. 	Ê=†. ËÌ!)‡" [ediff-do-merge 0 StartBuffer ediff-buffer-C get-buffer buffer-name ((set-buffer StartBuffer)) set-buffer-modified-p nil this-command ediff-quit error "You've killed an essential Ediff buffer---Please quit Ediff"] 3])
(put (quote ediff-merge-on-startup) (quote byte-optimizer) (quote byte-compile-inline-expand))
#@35 Merge two files without ancestor.
(defalias 'ediff-merge-files #[(file-A file-B &optional startup-hooks) "À	BÂÄ!ƒ ÆÇ!\"‚ È	É%‡" [ediff-merge-on-startup startup-hooks ediff-files-internal file-A file-directory-p file-B expand-file-name file-name-nondirectory nil ediff-merge-files] 6 (#$ . 21807) (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) "À	BÂÄ!ƒ ÆÇ!\"‚ 	É%‡" [ediff-merge-on-startup startup-hooks ediff-files-internal file-A file-directory-p file-B expand-file-name file-name-nondirectory file-ancestor ediff-merge-files-with-ancestor] 6 (#$ . 22555) (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 (quote ediff-merge-with-ancestor) (quote ediff-merge-files-with-ancestor))
#@33 Merge buffers without ancestor.
(defalias 'ediff-merge-buffers #[(buffer-A buffer-B &optional startup-hooks job-name) "À	B\n„\n ÃÄÇ	\n%‡" [ediff-merge-on-startup startup-hooks job-name ediff-merge-buffers ediff-buffers-internal buffer-A buffer-B nil] 6 (#$ . 23746) (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) "À	B\n„\n ÃÄ	\n%‡" [ediff-merge-on-startup startup-hooks job-name ediff-merge-buffers-with-ancestor ediff-buffers-internal buffer-A buffer-B buffer-ancestor] 6 (#$ . 24226) (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) "À ˆ	;ƒ\f Â	!ˆÃ‰‰‰ÈÉÊ	;ƒ$ Ë	!‚% Ì\"!ÈÉÍ	;ƒ7 Ë	!‚8 Ì\"!Ï=ƒw ŠÐ!ˆp)ŠÑ˜„Y Ð!ˆp)ÒÃÓÔ!DÕÑ˜ÓÔ\f!DEFB‚Á ×=ƒ– Ø!Ñ˜ƒŽ p‚’ Ø!‚Á Ù=ƒÁ ŠÑ˜ƒ© Ú Û!ˆp)ŠÑ˜„¾ Û!ˆp)Ü\fÝ$,‡" [ediff-load-version-control file find-file nil buf2 buf1 rev2 rev1 read-string format "Version 1 to merge (default: %s's latest version): " file-name-nondirectory "current buffer" "Version 2 to merge (default: %s): " ediff-version-control-package vc vc-version-other-window "" lambda delete-file buffer-file-name or startup-hooks rcs rcs-ediff-view-revision generic-sc generic-sc-get-latest-rev sc-visit-previous-revision ediff-merge-buffers ediff-merge-revisions] 8 (#$ . 24896) 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) "À ˆ	;ƒ\f Â	!ˆÃ‰‰‰‰‰	ÊËÌ	;ƒ* Í	!‚+ Î\"!	ÊËÏ	;ƒ= Í	!‚> Î\"!ÊËÐ	;ƒP Í	!‚Q Î\"!Ò=ƒ® ŠÓ	!ˆp)ŠÔ˜„s Ó!ˆp)ŠÔ˜„ƒ Ó!ˆp)ÕÃÖ×!DØÔ˜Ö×!DEØÔ˜Ö×\f!DE¯B‚Ú=ƒÞ Û	!Ô˜ƒÆ p‚Ê Û!Ô˜ƒÖ p‚Ú Û!‚Ü=ƒŠ	Ô˜ƒñ Ý 	Þ	!ˆp)ŠÔ˜„Þ!ˆp)ŠÔ˜„Þ!ˆp)ß\fà%.‡" [ediff-load-version-control file find-file nil ancestor-buf buf2 buf1 ancestor-rev rev2 rev1 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-version-control-package vc vc-version-other-window "" lambda delete-file buffer-file-name or startup-hooks rcs rcs-ediff-view-revision generic-sc generic-sc-get-latest-rev sc-visit-previous-revision ediff-merge-buffers-with-ancestor ediff-merge-revisions-with-ancestor] 9 (#$ . 25793) nil])
#@36 Run Ediff by patching BUFFER-NAME.
(defalias 'ediff-patch-buffer #[(buffer-name &optional startup-hooks) "À	!‰… Ã\n!Å\n!ÇÇ	Ç\n\fƒ$ \f	‚n p	ƒb À	!ƒb ÁÀ	!!ƒb ÌŽ	qˆÎ	!	Ï	!ˆÇÑ	!ˆÒÇ!ˆÓ ˆ)‚m Õ=„m Ö×!ˆ)Ø	Ú#\n\f?…Cp\nƒ8À\n!ƒ8ÁÀ\n!!ƒ8ÛŽ\nqˆÜÃ!!ˆÜÃ!!ˆpƒà À!ƒà ÁÀ!!ƒà ßŽqˆƒÏ ÏÇ!ˆÑ	!ˆÒ!ˆ)‚ë Õ=„ë Ö×!ˆ)pƒ*À!ƒ*ÁÀ!!ƒ*àŽqˆÇƒÏÇ!ˆÑá	âPã\"!ˆÒä!)‚4Õ=†4Ö×!*‚BÕ=†BÖ×!).‡" [get-buffer buffer-name buf-to-patch buffer-file-name file-name-ok buffer-modified-p buf-mod-status nil default-dir file-name ctl-buf StartBuffer ((set-buffer StartBuffer)) default-directory ediff-make-temp-file set-visited-file-name buffer-auto-save-file-name rename-buffer set-buffer-modified-p set-visited-file-modtime this-command ediff-quit error "You've killed an essential Ediff buffer---Please quit Ediff" ediff-patch-file startup-hooks ediff-patch-buffer ((set-buffer StartBuffer)) delete-file ediff-buffer-A ediff-buffer-B ((set-buffer StartBuffer)) ((set-buffer StartBuffer)) ediff-unique-buffer-name "_patched" "" t] 5 (#$ . 26912) "bBuffer to patch: "])
#@106 Obtain patch buffer.  If patch is already in a buffer---use it.
Else, read patch file into a new buffer.
(defalias 'ediff-get-patch-buffer #[(dir) "ÀÁ!ƒ ÂÃÄÅÆ#!‚ ÈÉÊ\"!ÌÍ!pƒF Â!ƒF ÐÂ!!ƒF ÑŽqˆÒ!)‚P Ô=†P ÕÖ!)‡" [y-or-n-p "Is the patch file already in a buffer? " get-buffer read-buffer "Patch buffer name: " nil t ediff-patch-buf find-file-noselect read-file-name "Patch file name: " dir get-buffer-create "*ediff patch diagnostics*" ediff-patch-diagnostics StartBuffer buffer-name ((set-buffer StartBuffer)) insert-buffer this-command ediff-quit error "You've killed an essential Ediff buffer---Please quit Ediff"] 5 (#$ . 28032)])
#@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) ";ƒ	 Á!ˆÂ‰ÅÆÇ;ƒ È!‚ É\"!ÅÆÊ;ƒ- È!‚. É\"!Ë ˆÌÆÍ\"!\f#*‡" [file find-file nil rev2 rev1 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 "%S-ediff-internal" ediff-version-control-package startup-hooks] 5 (#$ . 28694) "P"])
(defalias 'ediff-load-version-control #[(&optional silent) "À	!† ÂÃ	!!ƒ ÄÅ!ˆÆ	!‡† ÈÉ	\"‡" [featurep ediff-version-control-package locate-library symbol-name message "" require silent error "Version control package %S.el not found. Use vc.el instead"] 3])
#@236 Run Ediff on versions of the current buffer.
If REV2 is "" then compare current buffer with REV1.
If the current buffer is named `F', the version is named `F.~REV~'.
If `F.~REV~' already exists, it is used instead of being re-created.
(defalias 'vc-ediff-internal #[(rev1 rev2 &optional startup-hooks) "À‰‰‰ŠÅ!ˆpÇ )ŠÉ˜„! Å!ˆpÇ )ÊÀË\fDÌÉ˜ËDEFBÎ\n	Ï$,‡" [nil rev2buf rev1buf file2 file1 vc-version-other-window rev1 buffer-file-name rev2 "" lambda delete-file or startup-hooks ediff-buffers ediff-revision] 7 (#$ . 29591)])
#@96 View previous RCS revision of current file.
With prefix argument, prompts for a revision name.
(defalias 'rcs-ediff-view-revision #[(&optional rev) "Àp!ÂÃ\f… Å\fPC\"Ç	!È\fÉR\nËÌ!ˆÍ	!\n�Î	\n\"Ð!ˆŠqˆÑÒÓÔÕÔÂ×	D#&ˆ*ËØ!ˆ\n‘+‡" [buffer-file-name filename append ("-p") rev "-r" switches file-name-nondirectory ".~" "~" buff message "Working ..." expand-file-name ediff-rcs-get-output-buffer output-buffer delete-windows-on apply call-process "co" nil t rcs-default-co-switches "-q" ""] 12 (#$ . 30142) (list (if current-prefix-arg (read-string "Revision: ")))])
(defalias 'ediff-rcs-get-output-buffer #[(file name) "ÀÂ!Š\fqˆÅÇÈ	!!\nË ˆ)\f*‡" [fundamental-mode default-major-mode get-buffer-create name buf nil buffer-read-only file-name-directory expand-file-name file default-directory erase-buffer] 3])
#@85 Run Ediff on versions of the current buffer.
If REV2 is "" then use current buffer.
(defalias 'rcs-ediff-internal #[(rev1 rev2 &optional startup-hooks) "Á˜ƒ\n p‚ Â!Â!Æ\fÈ$*‡" [rev2 "" rcs-ediff-view-revision rev1 rev1buf rev2buf ediff-buffers startup-hooks ediff-revision] 5 (#$ . 30974)])
(defalias 'generic-sc-get-latest-rev #[nil "Á=ƒ\n ÂÃ!‡ÂÄ!‡" [sc-mode CCASE eval "main/LATEST" ""] 2])
#@236 Run Ediff on versions of the current buffer.
If REV2 is "" then compare current buffer with REV1.
If the current buffer is named `F', the version is named `F.~REV~'.
If `F.~REV~' already exists, it is used instead of being re-created.
(defalias 'generic-sc-ediff-internal #[(rev1 rev2 &optional startup-hooks) "À‰Šƒ Ä˜ƒ Å Æ!ˆp)ŠÄ˜„& Æ!ˆp)È\n		Ê$*‡" [nil rev2buf rev1buf rev1 "" generic-sc-get-latest-rev sc-visit-previous-revision rev2 ediff-buffers startup-hooks ediff-revision] 5 (#$ . 31383)])
#@97 Return string describing the version of Ediff.
When called interactively, displays the version.
(defalias 'ediff-version #[nil "tƒ	 ÀÁ !‡ÂÃ	\f#‡" [message ediff-version format "Ediff %s of %s" ediff-date] 4 (#$ . 31901) nil])
(byte-code "ÀÁ!ˆÂÃ!‡" [provide ediff require ediff-util] 2)
