;ELC ;;; Compiled by pot@pot.cnuce.cnr.it on Tue Mar 18 15:38:00 2003 ;;; from file /home/pot/gnu/emacs-pretest.new/lisp/ediff-diff.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-diff.el' was compiled for Emacs 19.29 or later")) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\301\302!\210\303B\304\305!\210\306\302\307\310\311\312\313\314&\207" [current-load-list provide ediff-diff ediff-default-variant require ediff-init custom-declare-group nil "Diff related utilities" :prefix "ediff-" :group ediff] 8) #@67 *Program to use for generating the differential of the two files. (custom-declare-variable 'ediff-diff-program '"diff" '(#$ . -870) :type 'string :group 'ediff-diff) #@105 *Program to be used for three-way comparison. Must produce output compatible with Unix's diff3 program. (custom-declare-variable 'ediff-diff3-program '"diff3" '(#$ . -1043) :type 'string :group 'ediff-diff) (defalias 'ediff-test-utility #[(diff-util option &optional files) "\303\304\305\306\307\211\211 \257\n\"\"!\207" [diff-util option files zerop apply call-process append nil] 9]) (put 'ediff-test-utility 'byte-optimizer 'byte-compile-inline-expand) (defalias 'ediff-diff-mandatory-option #[(diff-util) "\306\300!\203\n\202 \307\n\310>\204\311\202h \f\230\203=\f\312 \211D\313\314\315\316 \317\211\211\257 \"\"!+\203=\312\202h \230\203g\312 \211\211E\313\314\315\316 \317\211\211\257 \"\"!+\203g\312\202h\311)\207" [null-device file system-type diff-util ediff-diff-program files boundp "/dev/null" (ms-dos windows-nt windows-95) "" "--binary" zerop apply call-process append nil option ediff-diff3-program] 9]) (defalias 'ediff-reset-diff-options #[(symb val) "\306=\203\n \202 \n\307 !\211\310\230\203\310\202\311\312\f \"\203* \202/\f  QL+\207" [symb ediff-diff-program ediff-diff3-program diff-program mandatory-option spacer ediff-diff-options ediff-diff-mandatory-option "" " " string-match val] 5]) #@366 *The shell used to run diff and patch. If user's .profile or .cshrc files are set up correctly, any shell will do. However, some people set $prompt or other things incorrectly, which leads to undesirable output messages. These may cause Ediff to fail. In such a case, set ediff-shell to a shell that you are not using or, better, fix your shell's startup file. (custom-declare-variable 'ediff-shell '(cond ((eq system-type 'emx) "cmd") ((memq system-type '(ms-dos windows-nt windows-95)) shell-file-name) ((memq system-type '(vax-vms axp-vms)) "*dcl*") (t "sh")) '(#$ . -2311) :type 'string :group 'ediff-diff) #@119 *Utility to use to determine if two files are identical. It must return code 0, if its arguments are identical files. (custom-declare-variable 'ediff-cmp-program '"cmp" '(#$ . -2933) :type 'string :group 'ediff-diff) #@174 *Options to pass to `ediff-cmp-program'. If GNUS diff is used as `ediff-cmp-program', then the most useful options are `-I' RE, to ignore changes whose lines all match RE. (custom-declare-variable 'ediff-cmp-options 'nil '(#$ . -3157) :type '(repeat string) :group 'ediff-diff) #@225 *Options to pass to `ediff-diff-program'. If diff(1) is used as `ediff-diff-program', then the most useful options are `-w', to ignore space, and `-i', to ignore case of letters. At present, the option `-c' is not allowed. (custom-declare-variable 'ediff-diff-options '"" '(#$ . -3443) :set 'ediff-reset-diff-options :type 'string :group 'ediff-diff) #@121 *Program to use for generating custom diff output for saving it in a file. This output is not used by Ediff internally. (custom-declare-variable 'ediff-custom-diff-program 'ediff-diff-program '(#$ . -3802) :type 'string :group 'ediff-diff) #@50 *Options to pass to `ediff-custom-diff-program'. (custom-declare-variable 'ediff-custom-diff-options '"-c" '(#$ . -4048) :type 'string :group 'ediff-diff) #@69 Pattern to match lines produced by diff3 that describe differences. (defvar ediff-match-diff3-line "^====\\(.?\\) ?$" (#$ . 4209)) #@44 *Options to pass to `ediff-diff3-program'. (custom-declare-variable 'ediff-diff3-options '"" '(#$ . -4346) :set 'ediff-reset-diff-options :type 'string :group 'ediff-diff) #@128 *Regexp that matches normal output lines from `ediff-diff3-program'. Lines that do not match are assumed to be error messages. (custom-declare-variable 'ediff-diff3-ok-lines-regexp '"^\\([1-3]:\\|====\\| \\|.*Warning *:\\|.*No newline\\|.*missing newline\\|^ $\\)" '(#$ . -4525) :type 'regexp :group 'ediff-diff) #@2  (defvar ediff-diff-status "" (#$ . 4844)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local ediff-diff-status put permanent-local t] 4) #@324 If `on', Ediff auto-highlights fine diffs for the current diff region. If `off', auto-highlighting is not used. If `nix', no fine diffs are shown at all, unless the user force-refines the region by hitting `*'. This variable can be set either in .emacs or toggled interactively. Use `setq-default' if setting it in .emacs (defvar ediff-auto-refine (byte-code "\300 \203\301\207\302\207" [ediff-has-face-support-p on nix] 1) (#$ . 5014)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local ediff-auto-refine put permanent-local t] 4) #@201 *If t, skip over difference regions that differ only in the white space and line breaks. This variable can be set either in .emacs or toggled interactively. Use `setq-default' if setting it in .emacs (defvar ediff-ignore-similar-regions nil (#$ . -5581)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local ediff-ignore-similar-regions put permanent-local t] 4) #@64 *Auto-refine only the regions of this size (in bytes) or less. (defvar ediff-auto-refine-limit 1400 (#$ . -5973)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local ediff-auto-refine-limit put permanent-local t] 4) #@260 Regexp that matches normal output lines from `ediff-diff-program'. This is mostly lifted from Emerge, except that Ediff also considers warnings and `Missing newline'-type messages to be normal output. Lines that do not match are assumed to be error messages. (defvar ediff-diff-ok-lines-regexp "^\\([0-9,]+[acd][0-9,]+ ?$\\|[<>] \\|---\\|.*Warning *:\\|.*No +newline\\|.*missing +newline\\|^ ?$\\)" (#$ . 6220)) #@68 Pattern to match lines produced by diff that describe differences. (defvar ediff-match-diff-line (byte-code "\301\302\303\304\260)\207" [x "\\([0-9]+\\)\\(\\|,\\([0-9]+\\)\\)" "^" "\\([acd]\\)" " ?$"] 5) (#$ . 6638)) #@402 value is a function symbol depending on the kind of job is to be done. For 2-way jobs and for ediff-merge, it should be `ediff-setup-diff-regions'. For jobs requiring diff3, it should be `ediff-setup-diff-regions3'. The function should take three mandatory arguments, file-A, file-B, and file-C. It may ignore file C for diff2 jobs. It should also take one optional arguments, diff-number to refine. (defvar ediff-setup-diff-regions-function nil (#$ . 6866)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local ediff-setup-diff-regions-function put permanent-local t] 4) (defalias 'ediff-setup-diff-regions #[(file-A file-B file-C) "\306\307\"\203 \310\311!\210 \203\312 !\203\313\312 !!\204$\314\315\316\317\"!\320 \n #\210\321\f \"\210\322\323 #!\207" [ediff-diff-options ediff-diff-buffer file-A file-B ediff-diff-ok-lines-regexp ediff-word-mode string-match "c" error "Option `-c' is not allowed in `ediff-diff-options'" get-buffer buffer-name get-buffer-create ediff-unique-buffer-name "*ediff-diff" "*" ediff-make-diff2-buffer ediff-prepare-error-list ediff-convert-diffs-to-overlays ediff-extract-diffs ediff-narrow-bounds] 5]) (defalias 'ediff-make-diff2-buffer #[(diff-buffer file1 file2) "\306 \307\")\n\306 \307\")\211\247\204$\310\311\312!\"\210\313\314!\210\315\202} \247\2048\310\311\312\n!\"\210\313\314!\210\315\202}\310\316\317!\317\n!#\210\320 \321\n&\210\310\322!\210\203r\323!\203r\324\323!!\203rrq\210\325 )\202}\326=\206}\327!*\207" [file1 filename file2 file2-size file1-size ediff-diff-program ediff-file-attributes 7 message "Can't find file: %s" ediff-abbreviate-file-name sit-for 2 1 "Computing differences between %s and %s ..." file-name-nondirectory ediff-exec-process synchronize "" get-buffer buffer-name buffer-size ediff-quit error diff-buffer ediff-diff-options this-command ediff-KILLED-VITAL-BUFFER] 8]) (defalias 'ediff-setup-fine-diff-regions #[(file-A file-B file-C reg-num) "\203\306!\203\307\306!!\204\310\311\312\313\"!\314\211\211\211\211 \211\203/!\2021\" \203;#\202=$ \203G%\202I&\315'TC()*\203`\316\317)(#\210*\320\f\321 +\203p+\202r,,\203|,\202~+ \205\216-\203\214-\202\216,&\210\322\n\"\210\323\314()*\203\251\316\317)(#\210* \203\266\324\325\326#\202\272\327\326\" \203\346+\204\315\330\331 A\"\210\202\346,\204\333\330\332 A\"\210\202\346-\204\346\330\333 A\"\210 '.\334\335 .#\210\334\336 .#\210 \205\334\337 .#.\207" [ediff-fine-diff-buffer diff-list ok-regexp diff-options diff-program diff3-job get-buffer buffer-name get-buffer-create ediff-unique-buffer-name "*ediff-fine-diff" "*" nil "Refining difference region %d ..." apply message ediff-exec-process synchronize ediff-prepare-error-list "" ediff-extract-diffs3 3way-comparison word-mode ediff-extract-diffs mapcar #[(elt) "\301\302I\210\303\302I\207" [elt 0 nil 1] 3] #[(elt) "\301\302I\210\303\302I\207" [elt 2 nil 3] 3] #[(elt) "\301\302I\210\303\302I\207" [elt 4 nil 5] 3] ediff-set-fine-overlays-in-one-buffer A B C ediff-3way-job ediff-diff3-program ediff-diff-program ediff-diff3-options ediff-diff-options ediff-diff3-ok-lines-regexp ediff-diff-ok-lines-regexp reg-num args string ediff-verbose-p file-A file-B file-C region-num] 9]) (defalias 'ediff-prepare-error-list #[(ok-regexp diff-buff) "\203\306!\203\307\306!!\204\310\311\312\313\"!\203n\306!\203n\307\306!!\203nrq\210\314 \210 \203N\306 !\203N\307\306 !!\203Nr q\210\315 )\202W\n\316=\206W\317 !c\210eb\210\320\f!\210 \321>\203j\320\322!\210)\202x\n\316=\204x\317 !\210\203\224\306!\203\224\307\306!!\203\224rq\210\323 )\202\235\n\316=\206\235\317 !\324U?\205\327\325 \210\326!\210\211\203\321\306!\203\321\307\306!!\203\321\327\306!!\210)\317\330 \"*\207" [ediff-error-buffer diff-buff this-command ediff-KILLED-VITAL-BUFFER ok-regexp system-type get-buffer buffer-name get-buffer-create ediff-unique-buffer-name "*ediff-errors" "*" erase-buffer buffer-string ediff-quit error delete-matching-lines (vax-vms axp-vms) "^$" buffer-size 0 ediff-skip-unsuitable-frames switch-to-buffer kill-buffer "Errors in diff output. Diff output is in %S" ediff-control-buffer error-buf ctl-buf buf] 5]) (defalias 'ediff-extract-diffs #[(diff-buffer word-mode &optional bounds) " \n\306\211\211\307\211\211 !\"#$\203!\310\202\"\311 B%\203g%@&\312&!\205F'\203B\313&!\202F\314&!)%A@&\312&!\205e'\203a\313&!\202e\314&!)#\203\220\315#!\203\220\316\315#!!\203\220r#q\210\f\203\211\f\202\212eb\210)\202\234(\317=\204\234\320)!\210\"\203\305\315\"!\203\305\316\315\"!!\203\305r\"q\210 \203\276 \202\277eb\210)\202\321(\317=\204\321\320)!\210!\203\315!!\203\316\315!!!\203!\203\315!!\203\316\315!!!\203r!q\210eb\210)\202(\317=\204\320)!\210*\203\230\315*!\203\230\316\315*!!\203\230r*q\210eb\210\321+\307\322#\203\224\323\306\224\306\225{!,\324\224\324\225-\211.\203X\323.-{!\202Z,*/\325\224\325\225{0\323\326\224\326\225{!1\327\224\327\225-\211.\203\203\323.-{!\202\2051*2\3073\3074\3075\3076\3077\3078\3079\307:0\330\230\203\2672T2,T\211,/\202\3300\331\230\203\316/T/1T\21112\202\330/T/2T2;\332=\203\3521728\202\362,7/8$\203f !\2036\315!!\2036\316\315!!!\2036\333, Z/,Z1Z21Z7Z87Z\307\211\211\211\211& \202T\333, Z/,Z1Z21Z\307\211\211\211\211\211\211& C\244/ 28\202\217#\203\234\315#!\203\234\316\315#!!\203\234r#q\210, Zy\210`3/,Zy\210`4/ )\202\250(\317=\204\250\320)!\210\"\203\336\315\"!\203\336\316\315\"!!\203\336r\"q\2101Zy\210`521Zy\210`62)\202\352(\317=\204\352\320)!\210!\203A\315!!\203A\316\315!!!\203A!\2035\315!!\2035\316\315!!!\2035r!q\2107Zy\210`987Zy\210`:8)\202A(\317=\204A\320)!\210 !\203z\315!!\203z\316\315!!!\203z\33334569:\307\211;\332=\203q\334\202r\335;\307& \202\214\3333456\307\211\211\211\211\211\211& C\244. \2020)\202\244(\317=\204\244\320)!\210 . \207" [ediff-buffer-A ediff-buffer-B ediff-buffer-C shift-B shift-A diff-list 1 nil words points ediff-overlayp overlay-start extent-start-position get-buffer buffer-name ediff-quit error re-search-forward t string-to-int 3 4 5 7 "a" "d" default-B vector A B c-prev b-prev a-prev C-buffer B-buffer A-buffer word-mode bounds overl ediff-emacs-p this-command ediff-KILLED-VITAL-BUFFER diff-buffer ediff-match-diff-line a-begin e b a-end diff-type b-begin b-end a-begin-pt a-end-pt b-begin-pt b-end-pt c-begin c-end c-begin-pt c-end-pt ediff-default-variant] 14]) (defalias 'ediff-convert-diffs-to-overlays #[(diff-list) "\305\306\"\210\305\307\"\210 \203\305\310\"\210\n\203\305\311\"\210 \203(\312\313\314A\"!\315\316!\207" [diff-list ediff-3way-job ediff-merge-with-ancestor-job ediff-merge-job ediff-state-of-merge ediff-set-diff-overlays-in-one-buffer A B C Ancestor vconcat mapcar #[(elt) "\303H\304H\305\n\205\306\307\n\" \"*\207" [elt state-of-ancestor state-of-merge 9 10 vector format "%S"] 4] message "Processing difference regions ... done"] 4]) (defalias 'ediff-set-diff-overlays-in-one-buffer #[(buf-type diff-list) "\306 \307=\203\f\n\202' \310=\203 \202' \311=\203 \f\202' \312=\205' 45@6 \307=\203:7@\202Q \310=\203G7A@\202Q \311=\205Q\313788\3148!\205j9\203f\3158!\202j\3168!): \307=\203y7@\202\220 \310=\203\2067A@\202\220 \311=\205\220\313788\3148!\205\2519\203\245\3178!\202\251\3208!);\321<\321=\321>\321?\321$\321@\321A\321B5A\2115G>4\203\357\3224!\203\357\323\3224!!\203\357r4q\210:@)\202\373C\324=\204\373\325D!\2105\203}T5@\211= \307=\203\326\202( \310=\203\313\202( \311=\203'\327\202(\330H?= \307=\2037\331\202L \310=\203A\332\202L \311=\203K\333\202L\334H$=\335HB B=\204\201 \312=\204\201B\336>\203\201\337 \337B\307\310\311E\"\"@B\340\341B\"B\202\204\321B6\342=\2034\203\255\3224!\203\255\323\3224!!\203\255r4q\210@b\210)\202\271C\324=\204\271\325D!\210\343?T4\"?\343$4\344#\211$;V\203\326;$?$V\203\342$?4\203\3224!\203\323\3224!!\203r4q\210`)\202\fC\324=\206\f\325D!@\345?$4#A\346A\347E#\210\346A\350#\210\351 \203UF\203UG\203U\352A H\353 \354H\331\"\331=\203OI\202QJ\"*\"\210\355\356\"\326U\203f\357\360 >$\210<\361A\321\211B$C\244<5A\2115\204 KL\362 L\"A*\363?@A\322\321=<;E\"G\306V\203%\323!\203B\203\324\317\321#\210C\203\266\325T=\204\220\315\202\240<\204\231\316\202\240;?\205\240\317DDEF\203\262\326\327ED#\210*\202\344\330T=\203\302\315\202\321<\203\313\316\202\321;\205\321\317DDEF\203\343\326\327ED#\210*:\203\f9\203\f8\203\f\315GHI\331IH\"A*JH\332\333I\210\202\333\315GHI\331IH\"A*JH\332\321I\210\202\333 \334=\203\272\315GHI\331IH\"A*JH\306H\203\272\315GHI\331IH\"A*JH\332H\203\333\327\335T\315GHI\331IH\"A*JH\332H\315=\203z\336\202\265\315GHI\331IH\"A*JH\332H\316=\203\227\337\202\265\315GHI\331IH\"A*JH\332H\317=\203\264\340\202\265\341#\210\202\333 \310=\203\360\342\315G\"JH\306H\204\3332\343>\204\333\344T\345\346!DDEF\203\354\326\327ED#\210*\202\333\347\350\315\351#\350\315\352#JAK%\210\353A\354@#@\347\350\316\351#\350\316\352#LAK%\210\353A\355?#?M\203I\347\350\317\351#\350\317\352#NAK%\210\353A\356>#>@4?5>6M\203k:\203k\357\321?>$\210\202\241M\203\2019\203\201\357@\321>$\210\202\241M\203\2278\203\227\357@?\321$\210\202\241\357@?>$\210\315GHI\331IH\"A*JH\306HG\316GHI\331IH\"A*JH\306HG\\>\203\356B\204\356\317GHI\331IH\"A*JH\306HG\202\357\312\\7:\2039\2038\204:\204K9\204KM\2038\204K7\312=\203K\315GHI\331IH\"A*JH\332\333I\210\360TCDEF\203G\326\327ED#\210*\202\3337\312=\203\305\335T:\203t\315GHI\331IH\"A*JH\332\315I\210\336\202\2579\203\223\315GHI\331IH\"A*JH\332\316I\210\337\202\2578\205\257\315GHI\331IH\"A*JH\332\317I\210\340DDEF\203\301\326\327ED#\210*\202\333\315GHI\331IH\"A*JH\332\321I\210\361!. \207" [n ediff-current-difference ediff-number-of-differences ediff-NO-DIFFERENCES ediff-word-mode flag 1 error skip nix 0 get-buffer-create ediff-empty-diff-region-p A B C ediff-whitespace-diff-region-p nil delq ediff-looks-like-combined-merge ediff-set-fine-overlays-in-one-buffer "Region %d is empty in all buffers but %S" apply message "Region %d in buffer %S is empty" assoc 2 t noforce "Only white-space differences in region %d %s" "in buffers B & C" "in buffers A & C" "in buffers A & B" "" ediff-get-symbol-from-alist (off nix) "Region %d exceeds the auto-refinement limit. Type `%s' to refine" substitute-command-keys "\\[ediff-make-or-kill-fine-diffs]" ediff-wordify ediff-get-diff-posn beg end ediff-make-temp-file "fineDiffA" "fineDiffB" "fineDiffC" ediff-setup-fine-diff-regions "Only white-space differences in region %d" ediff-set-fine-diff-properties ediff-auto-refine ediff-tmp-buffer ediff-temp-file-A ediff-temp-file-B ediff-temp-file-C cumulative-fine-diff-length whitespace-C whitespace-B whitespace-A empty-C empty-B empty-A file-C file-B file-A tmp-buffer ediff-merge-job ediff-3way-comparison-job args string ediff-verbose-p ediff-difference-vector-alist alist buf-type ediff-buffer-A ediff-control-buffer ediff-buffer-B ediff-3way-job ediff-buffer-C] 12]) (defalias 'ediff-install-fine-diff-if-necessary #[(n) "\303=\2030 \304\305\306\n#\304\305\307\n#ZV\203+ \304\310\306\n#\304\310\307\n#ZV\203+\311\n\312\"\207\311\n\313\"\207\314=\205:\311\n\313\"\207" [ediff-auto-refine ediff-auto-refine-limit n on ediff-get-diff-posn A end beg B ediff-make-fine-diffs noforce skip off] 6]) (defalias 'ediff-set-fine-diff-properties #[(n &optional default) "\304 ?\206'\305W\206' Y\206'\306\307\n#\210\306\310\n#\210 \205'\306\311\n#\207" [n ediff-number-of-differences default ediff-3way-job ediff-has-face-support-p 0 ediff-set-fine-diff-properties-in-one-buffer A B C] 4]) (defalias 'ediff-set-fine-diff-properties-in-one-buffer #[(buf-type n &optional default) " \306\n\"A*J H\307H\f\203\304\202#\310 \306\n\"A*!\f\203+\311\202?\312\306\n\"A*J\313\"\206>\311T \314\315\"+\207" [buf-type ediff-difference-vector-alist alist n default ediff-fine-diff-face-alist assoc 1 face-name 0 ediff-overlay-get priority mapcar #[(overl) "\303 \"\210\304\302\n#\207" [overl face priority ediff-set-overlay-face ediff-overlay-put] 4] ediff-current-diff-overlay-alist face fine-diff-vector] 6]) (defalias 'ediff-set-fine-overlays-for-combined-merge #[(diff-list reg-num) "\306\211\n\203'\306\307\310\217\210 B\nG\311V\203 \nAA\211\202\312\313!\210\202\314!\315 \316 \f\"A*JH\311\317\320\"I*\207" [overlay-list overlay diff-list ediff-difference-vector-alist alist buf-type nil (byte-code "\303@A@ #\303\207" [diff-list ediff-buffer-C overlay ediff-make-bullet-proof-overlay] 4) ((error)) 1 error "ediff-set-fine-overlays-for-combined-merge: corrupt list of\ndelimiter regions" reverse C assoc apply vector reg-num] 6]) (defalias 'ediff-set-fine-overlays-in-one-buffer #[(buf-type diff-list region-num) "\306\307 \310\n# \311=\203\f\202/ \312=\203 \202/ \313=\203'!\202/ \314=\205/\"#\315$\315%\315&\315'\315\315(\n )\316\317 *\"J)H!\210\317 *\"J)H\320\315I\210*+A+#\203\210\321#!\203\210\322\321#!!\203\210r#q\210 b\210)\202\224,\323=\204\224\324-!\210.\203\260 \313=\203\260\325\n!\211$\203\260\326$\n\"\202=+\203'T+@\211& \311=\203\310\327\202\323 \312=\203\322\330\202\323\331H'& \311=\203\342\320\202\355 \312=\203\354\332\202\355\333H'\204\372\203\334'T#\"'\334#\335#\336'##(%(C\244%+A\211+\204\265 */\337 /\"A*J\nH\320\340%!I. \207" [current-diff buf-type region-num reg-start ediff-buffer-A ediff-buffer-B -1 ediff-get-diff-posn beg A B C Ancestor nil ediff-clear-fine-diff-vector ediff-get-symbol-from-alist 1 get-buffer buffer-name ediff-quit error ediff-looks-like-combined-merge ediff-set-fine-overlays-for-combined-merge 0 2 4 3 5 ediff-goto-word end ediff-make-bullet-proof-overlay assoc vconcat ediff-buffer-C ediff-ancestor-buffer buff combined-merge-diff-list diff-overlay-list list-element begin overlay n ediff-difference-vector-alist diff-list this-command ediff-KILLED-VITAL-BUFFER ediff-merge-job alist] 5]) (defalias 'ediff-get-diff3-group #[(file) "\212\302\303\304Q!\210\305\306!\210\307\224\307\225{\310\230\203>\306\224\203.\311\312\224\312\225{!\311\313\224\313\225{!TD\202H\311\312\224\312\225{!\211\211T)D\202H\311\312\224\312\225{!T\211D)\207" [file x re-search-forward "^" ":\\([0-9]+\\)\\(,\\([0-9]+\\)\\)?\\([ac]\\) ?$" beginning-of-line 2 4 "c" string-to-int 1 3] 5]) (defalias 'ediff-extract-diffs3 #[(diff-buffer word-mode three-way-comp &optional bounds) " \n \306\211\211\211\307\211\211\211!\"#$%&'()*+\203+\310\202,\311\"B\",\203\230,@-\312-!\205R.\203N\313-!\202R\314-!)!,A@-\312-!\205r.\203n\313-!\202r\314-!)/\205\227\315,8-\312-!\205\226.\203\222\313-!\202\226\314-!)*\203\303\316*!\203\303\317\316*!!\203\303r*q\210!\203\274!\202\275eb\210)\202\3170\320=\204\317\3211!\210)\203\370\316)!\203\370\317\316)!!\203\370r)q\210 \203\361 \202\362eb\210)\2020\320=\204\3211!\210/\203>(\2032\316(!\2032\317\316(!!\2032r(q\210\f\203+\f\202,eb\210)\202>0\320=\204>\3211!\210'\203\200\316'!\203\200\317\316'!!\203\200'\203t\316'!\203t\317\316'!!\203tr'q\210eb\210)\202\2000\320=\204\200\3211!\2102\203!\3162!\203!\317\3162!!\203!r2q\210eb\210\3223\307\323#\203\324\315!\210\306\224\306\225{4/\204\2754\325\230\204\326\327!@5\326\327!A@6\326\330!@7\326\330!A@8\326\325!@9\326\325!A@:4\327\230\203\357\331\202\3744\330\230\203\372\332\202\374;\211<\333>\203\334\202 \335=4\327\230\203\335\202)4\330\230\203!\334\202)4\325\230\205)\336>\307?\307@\307A\307B\307C\307D\307E\307F\307G\307H\307I9:U?/\203c9@:A\202};\337=\203u7@8A\202}5@6A+\203\275\"\3405&Z65Z7%Z87Z@$ZA@Z\307\211\211\211\211& C\244\"6&8%A$\202*\203\363\316*!\203\363\317\316*!!\203\363r*q\2105&Zy\210`B65Zy\210`C6&)\202\3770\320=\204\377\3211!\210)\2035\316)!\2035\317\316)!!\2035r)q\2107%Zy\210`D87Zy\210`E8%)\202A0\320=\204A\3211!\210(\203w\316(!\203w\317\316(!!\203wr(q\210@$Zy\210`FA@Zy\210`GA$)\202\2030\320=\204\203\3211!\210'\203\332\316'!\203\332\317\316'!!\203\332'\203\316\316'!\203\316\317\316'!!\203\316r'q\2109#Zy\210`H:9Zy\210`I:#)\202\3320\320=\204\332\3211!\210\"/\203\372\340BCDEFG\307\211>\307\211& C\202\340BCDEFGHI=<?& C\244\".)\202\235)\202-0\320=\204-\3211!\210\".\f\207" [ediff-buffer-A ediff-buffer-B ediff-buffer-C ediff-ancestor-buffer shift-C shift-B 1 nil words points ediff-overlayp overlay-start extent-start-position 2 get-buffer buffer-name ediff-quit error re-search-forward t beginning-of-line "3" ediff-get-diff3-group "1" "2" prefer-A prefer-B (default-A prefer-A) B A C default-B vector shift-A diff-list anc-prev c-prev b-prev a-prev anc-buffer C-buffer B-buffer A-buffer word-mode bounds overl ediff-emacs-p three-way-comp this-command ediff-KILLED-VITAL-BUFFER diff-buffer ediff-match-diff3-line agreement a-begin a-end b-begin b-end c-or-anc-begin c-or-anc-end ediff-default-variant state-of-merge state-of-diff-merge state-of-diff-comparison state-of-ancestor c-begin c-end a-begin-pt a-end-pt b-begin-pt b-end-pt c-begin-pt c-end-pt anc-begin-pt anc-end-pt] 14]) (defalias 'ediff-setup-diff-regions3 #[(file-A file-B file-C) "\203\306!\203\307\306!!\204\310\311\312\313\"!\314\315!\210\316 \317\n \f &\210\320\"\210\321\322$!\207" [ediff-diff-buffer ediff-diff3-program ediff-diff3-options file-A file-B file-C get-buffer buffer-name get-buffer-create ediff-unique-buffer-name "*ediff-diff" "*" message "Computing differences ..." ediff-exec-process synchronize ediff-prepare-error-list ediff-convert-diffs-to-overlays ediff-extract-diffs3 ediff-diff3-ok-lines-regexp ediff-word-mode ediff-3way-comparison-job ediff-narrow-bounds] 8]) (defalias 'ediff-exec-process #[(program buffer synch options &rest files) "\306 \307\310\311\f! \"\312\313\314\307 \"\"\315\316\317!\"\204- !=\204-\312\320 \"\321\216\"\307#$\212 q\210\322 \210$\"%\323>\204N&\203\\\324\325'\307 \307 &\202\204\326 !\211#\203k\327#!\210\324\330\331 ' %#\332(\333#\334\"\210\335#\336\".\207" [ediff-coding-system-for-read args coding-system-for-read data options files match-data nil append split-string delete "" delq string-match "buffer" symbol-name "--binary" ((store-match-data data)) erase-buffer (emx ms-dos windows-nt windows-95) apply call-process get-buffer-process kill-process start-process "Custom Diff" (":%s") set-process-sentinel ediff-process-sentinel set-process-filter ediff-process-filter ediff-job-name buffer ediff-fine-diff-buffer default-directory proc directory system-type synch program mode-line-process] 8]) (defalias 'ediff-process-filter #[(proc string) "p\306 !\307\310\n!\311\f!\312\216\nq\210`dU\204`db\210\313\f!.\207" [obuf proc buffer opoint window pos process-buffer nil get-buffer-window window-start ((byte-code "\304 \"\210\n\203\f\nb\210 q\207" [window pos opoint obuf set-window-start] 3)) insert-before-markers string] 2]) (defalias 'ediff-process-sentinel #[(process signal) "\302!\303>\205\304\305!!\205\212\305!q\210\306)\307!\207" [process mode-line-process process-status (exit signal) buffer-name process-buffer nil delete-process] 3]) #@106 *Function to call to move to the next word. Used for splitting difference regions into individual words. (defvar ediff-forward-word-function 'ediff-forward-word (#$ . -28006)) #@113 *Characters constituting white space. These characters are ignored when differing regions are split into words. (defvar ediff-whitespace " \n \f" (#$ . -28189)) #@159 *Characters that constitute words of type 1. More precisely, [ediff-word-1] is a regexp that matches type 1 words. See `ediff-forward-word' for more details. (defvar ediff-word-1 "a-zA-Z---_" (#$ . -28357)) #@159 *Characters that constitute words of type 2. More precisely, [ediff-word-2] is a regexp that matches type 2 words. See `ediff-forward-word' for more details. (defvar ediff-word-2 "0-9.," (#$ . -28571)) #@159 *Characters that constitute words of type 3. More precisely, [ediff-word-3] is a regexp that matches type 3 words. See `ediff-forward-word' for more details. (defvar ediff-word-3 "`'?!:;\"{}[]()" (#$ . -28780)) #@159 *Characters that constitute words of type 4. More precisely, [ediff-word-4] is a regexp that matches type 4 words. See `ediff-forward-word' for more details. (defvar ediff-word-4 (concat "^" ediff-word-1 ediff-word-2 ediff-word-3 ediff-whitespace) (#$ . -28998)) #@272 Move point one word forward. There are four types of words, each of which consists entirely of characters in `ediff-word-1', `ediff-word-2', `ediff-word-3', or `ediff-word-4'. Words are recognized by passing these one after another as arguments to `skip-chars-forward'. (defalias 'ediff-forward-word #[nil "\304w\305\306!\\\307V\206! \304w\307V\206!\n\304w\307V\206! \304w\307V\207" [ediff-word-1 ediff-word-2 ediff-word-3 ediff-word-4 nil skip-syntax-forward "w" 0] 3 (#$ . 29268)]) (defalias 'ediff-wordify #[(beg end in-buffer out-buffer &optional control-buf) "\306\211\211\212 q\210\f\2037\f\203)\307\f!\203)\310\307\f!!\203)r\fq\210 )\2029\311=\2069\312!\2029\313 \314\"q\210\315\n!\210\316 \210c\210eb\210\306w\210e`|\210\f\203\211\f\203{\307\f!\203{\310\307\f!!\203{r\fq\210)\202\213\311=\206\213\312!\202\213m?\205\247 \210`\306w\210 `|\210\317c\210\202\215-\207" [diff-string sv-point inbuf-syntax-tbl in-buffer control-buf ediff-syntax-table nil get-buffer buffer-name ediff-quit error syntax-table buffer-substring-no-properties set-syntax-table erase-buffer "\n" this-command ediff-KILLED-VITAL-BUFFER beg end out-buffer ediff-whitespace ediff-forward-word-function] 3]) (defalias 'ediff-copy-to-buffer #[(beg end in-buffer out-buffer) "\305\212 q\210\n {\fq\210\306 \210c\210eb*\207" [string in-buffer beg end out-buffer nil erase-buffer] 2]) (defalias 'ediff-goto-word #[(n buf &optional flag) " \f\203Y\306\f!\203Y\307\306\f!!\203Yr\fq\210 \310w\210\311 p\312\216\313\314\n!!\210\315V\203D \210 \310w\210S\211\202/+\203T\316V\203T \210`)\202d\317=\206d\320!*\207" [ediff-forward-word-function ediff-syntax-table syntax-tbl fwd-word-fun buf ediff-whitespace get-buffer buffer-name nil syntax-table ((byte-code "rq\210\302 !\210)\302\207" [#1=#:buffer #2=#:table set-syntax-table] 2)) set-syntax-table copy-syntax-table 1 0 ediff-quit error #1# #2# n flag this-command ediff-KILLED-VITAL-BUFFER] 4]) #@41 T if F1 and F2 have identical contents. (defalias 'ediff-same-file-contents #[(f1 f2) "\305\306\307\211\211\310 \n D\"&\211\247\205\f\311=)\207" [ediff-cmp-program ediff-cmp-options f1 f2 res apply call-process nil append 0] 11 (#$ . 31278)])