;ELC ;;; Compiled by cyd@localhost on Mon Apr 23 22:20:39 2007 ;;; from file /home/cyd/emacs/lisp/ediff-diff.el ;;; in Emacs version 22.0.99 ;;; 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 "\300\301!\210\302\303\304\305\306\307\310\311&\207" [require ediff-init custom-declare-group ediff-diff 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" '(#$ . -748) :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" '(#$ . -921) :type 'string :group 'ediff-diff) (defalias 'ediff-test-utility #[(diff-util option &optional files) "\300\301\302\217\207" [nil (byte-code "\303\304\305\306\211\211 \257\n\"\"\307=\207" [diff-util option files apply call-process append nil 0] 8) ((error (format "Cannot execute program %S." diff-util)))] 3]) (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\202P \f\230\2031\f\312 \211D\313\314\315\217+\2031\316\202P \230\203O\312 \211\211E\313\314\315\217+\203O\316\202P\311)\207" [null-device file system-type diff-util ediff-diff-program files boundp "/dev/null" (ms-dos windows-nt windows-95) "" "--binary" nil (byte-code "\303\304\305\306\211\211 \257\n\"\"\307=\207" [diff-util option files apply call-process append nil 0] 8) ((error (format "Cannot execute program %S." diff-util))) "--binary " option ediff-diff3-program] 5]) (fset 'ediff-set-actual-diff-options '(lambda nil nil)) (defalias 'ediff-reset-diff-options #[(symb val) "\306=\203\n \202 \n\307 !\f PL\210\310 *\207" [symb ediff-diff-program ediff-diff3-program diff-program mandatory-option val ediff-diff-options ediff-diff-mandatory-option ediff-set-actual-diff-options] 3]) #@367 *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")) '(#$ . -2400) :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" '(#$ . -3023) :type 'string :group 'ediff-diff) #@180 *Options to pass to `ediff-cmp-program'. If GNU diff is used as `ediff-cmp-program', then the most useful options are `-I REGEXP', to ignore changes whose lines match the REGEXP. (custom-declare-variable 'ediff-cmp-options 'nil '(#$ . -3247) :type '(repeat string) :group 'ediff-diff) #@436 *Options to pass to `ediff-diff-program'. If Unix diff is used as `ediff-diff-program', then a useful option is `-w', to ignore space. Options `-c', `-u', and `-i' are not allowed. Case sensitivity can be toggled interactively using \[ediff-toggle-ignore-case]. This variable is not for customizing the look of the differences produced by the command \[ediff-show-diff-output]. Use the variable `ediff-custom-diff-options' for that. (custom-declare-variable 'ediff-diff-options '"" '(#$ . -3539) :set 'ediff-reset-diff-options :type 'string :group 'ediff-diff) #@181 *If t, skip over difference regions that differ only in letter case. This variable can be set either in .emacs or toggled interactively. Use `setq-default' if setting it in .emacs (defvar ediff-ignore-case nil (#$ . -4109)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local ediff-ignore-case put permanent-local t] 4) #@65 *Option that causes the diff program to ignore case of letters. (custom-declare-variable 'ediff-ignore-case-option '"-i" '(#$ . -4459) :type 'string :group 'ediff-diff) #@105 *Option that causes the diff3 program to ignore case of letters. GNU diff3 doesn't have such an option. (custom-declare-variable 'ediff-ignore-case-option3 '"" '(#$ . -4635) :type 'string :group 'ediff-diff) #@2  (defvar ediff-actual-diff-options ediff-diff-options (#$ . 4848)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local ediff-actual-diff-options put permanent-local t] 4) #@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 '(#$ . -5050) :type 'string :group 'ediff-diff) #@50 *Options to pass to `ediff-custom-diff-program'. (custom-declare-variable 'ediff-custom-diff-options '"-c" '(#$ . -5296) :type 'string :group 'ediff-diff) #@69 Pattern to match lines produced by diff3 that describe differences. (defvar ediff-match-diff3-line "^====\\(.?\\) ?$" (#$ . 5457)) #@44 *Options to pass to `ediff-diff3-program'. (custom-declare-variable 'ediff-diff3-options '"" '(#$ . -5594) :set 'ediff-reset-diff-options :type 'string :group 'ediff-diff) #@2  (defvar ediff-actual-diff3-options ediff-diff3-options (#$ . 5771)) (byte-code "\300\301!\210\302\301\303\304#\207" [make-variable-buffer-local ediff-actual-diff3-options put permanent-local t] 4) #@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\\|^ $\\)" '(#$ . -5976) :type 'regexp :group 'ediff-diff) #@2  (defvar ediff-diff-status "" (#$ . 6295)) (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) (#$ . 6465)) (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 (#$ . -7032)) (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 14000 (#$ . -7424)) (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\\|^ ?$\\)" (#$ . 7672)) #@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) (#$ . 8090)) #@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 (#$ . 8318)) (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 "^-[ciu]\\| -[ciu]\\|\\(^\\| \\)-[^- ]+[ciu]" error "Options `-c', `-u', and `-i' are 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-actual-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-actual-diff3-options ediff-actual-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\307\306\307\306\307\211\211\211 !\"#$%&'()\203*\310\202+\311 B*\203X*@+\312+!\205C\313+!)*A@+\312+!\205V\313+!)(\203\201\314(!\203\201\315\314(!!\203\201r(q\210\f\203z\f\202{eb\210)\202\215,\316=\204\215\317-!\210'\203\266\314'!\203\266\315\314'!!\203\266r'q\210 \203\257 \202\260eb\210)\202\302,\316=\204\302\317-!\210&\203\314&!\203\315\314&!!\203&\203\370\314&!\203\370\315\314&!!\203\370r&q\210eb\210)\202,\316=\204\317-!\210.\203-\314.!\203-\315\314.!!\203-r.q\210eb\210\320/\307\321#\203)\322\306\224\306\225{!0\323\224\323\2251\2112\203I\32221{!\202K0*3\324\224\324\225{4\322\325\224\325\225{!5\326\224\326\2251\2112\203t\32221{!\202v5*6\307\21178\307\2119:\307\211;<\307\211=>4\327\230\203\2506T60T\21103\202\3114\330\230\203\2773T35T\21156\202\3113T36T6?\331=\203\3335;6<\202\3430;3<)\203W &\203'\314&!\203'\315\314&!!\203'\3320%Z30Z5#Z65Z;!Z<;Z\307\211\211\211\211& \202E\3320%Z30Z5#Z65Z\307\211\211\211\211\211\211& C\2443%6#<!\202$(\203\305\314(!\203\305\315\314(!!\203\305r(q\210\333\334!\203\200\203\200\306\202\201\335\211@\306=\203\215\334\335!\210$\206\227\f\206\227eb\2100%Zy\210`730Zy\210`83%8$@\306=\203\301\334@!\210*\202\321,\316=\204\321\317-!\210'\203?\314'!\203?\315\314'!!\203?r'q\210\333\334!\203\372\203\372\306\202\373\335\211@\306=\203\334\335!\210\"\206 \206eb\2105#Zy\210`965Zy\210`:6#:\"@\306=\203;\334@!\210*\202K,\316=\204K\317-!\210&\203\326\314&!\203\326\315\314&!!\203\326&\203\312\314&!\203\312\315\314&!!\203\312r&q\210\333\334!\203\211\203\211\306\202\212\335\211@\306=\203\226\334\335!\210 \206\234eb\210;!Zy\210`=<;Zy\210`><!> @\306=\203\306\334@!\210*\202\326,\316=\204\326\317-!\210 &\203\314&!\203\315\314&!!\203\332789:=>\307\211?\331=\203\336\202\337?\307& \202!\332789:\307\211\211\211\211\211\211& C\244. \202!)\2029,\316=\2049\317-!\210 .\f\207" [ediff-buffer-A ediff-buffer-B ediff-buffer-C shift-B shift-A diff-list 1 nil words points ediff-overlayp overlay-start get-buffer buffer-name ediff-quit error re-search-forward t string-to-number 3 4 5 7 "a" "d" default-B vector boundp longlines-mode 0 A B c-prev-pt c-prev b-prev-pt b-prev a-prev-pt a-prev C-buffer B-buffer A-buffer word-mode bounds overl 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 longlines-mode-val] 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' 2345@6 \307=\203>7@\202U \310=\203K7A@\202U \311=\205U\313788\3148!\205b\3158!)9 \307=\203q7@\202\210 \310=\203~7A@\202\210 \311=\205\210\313788\3148!\205\225\3168!):\317\211;<\317\211=>\317\211\"?\317\211@A5A\2115G=2\203\333\3202!\203\333\321\3202!!\203\333r2q\2109?)\202\347B\322=\204\347\323C!\2105\203\224T5@\211< \307=\203\377\324\202 \310=\203 \313\202 \311=\203\325\202\326H>< \307=\203#\327\2028 \310=\203-\330\2028 \311=\2037\331\2028\332H\"<\333HA A=\204m \312=\204mA\334>\203m\335 \335A\307\310\311E\"\"@A\336\337A\"A\202p\317A6\340=\203%2\203\231\3202!\203\231\321\3202!!\203\231r2q\210?b\210)\202\245B\322=\204\245\323C!\2104\203\325\3204!\203\325\321\3204!!\203\325r4q\210\341>T2\">\341\"2\342#\")\202\341B\322=\204\341\323C!\210\":V\203\355:\">\"V\203\371\">2\203\3202!\203\321\3202!!\203r2q\210`)\202#B\322=\206#\323C!?\343>\"2#@\344@\345D#\210\344@\346#\210\347 \203lE\203lF\203l\350@ G\351 \352G\327\"\327=\203fH\202hI\"*\"\210\353\354\"\324U\203}\355\356 =$\210;\357@\317\211A$C\244;5A\2115\204\354 JK\360 K\"A*\361;!L.\207" [current-diff buf-type ediff-buffer-A ediff-buffer-B ediff-buffer-C ediff-ancestor-buffer -1 A B C Ancestor 2 ediff-overlayp overlay-start overlay-end nil get-buffer buffer-name ediff-quit error 0 4 6 1 3 5 7 8 (A B C) delq format "=diff(%S)" words ediff-goto-word end ediff-make-bullet-proof-overlay ediff-overlay-put priority ediff-diff-num ediff-has-face-support-p ediff-set-overlay-face ediff-get-symbol-from-alist logand mod 10 message "Buffer %S: Processing difference region %d of %d" vector assoc vconcat buff ediff-control-buffer ctl-buf diff-list diff-list-type ediff-narrow-bounds overl shift limit diff-overlay-list list-element total-diffs begin pt-saved overlay state-of-diff this-command ediff-KILLED-VITAL-BUFFER ediff-shadow-overlay-priority ediff-use-faces ediff-highlight-all-diffs dif-num ediff-even-diff-face-alist ediff-odd-diff-face-alist ediff-difference-vector-alist alist] 8]) (defalias 'ediff-make-fine-diffs #[(&optional n flag) "\204 \n\306W\203\307 !\210\f\203\310\3111\312W\206\352\nY\206\352\3132!345\314\315\"\314\316\"\314\317\"\320\315\"\320\316\"\320\317\"\3216789:;<=>?@\322\321<;:E\"G\306V\203%\323!\203A\203\324\317\321#\210B\203\266\325T<\204\220\315\202\240;\204\231\316\202\240:?\205\240\317DCDE\203\262\326\327DC#\210*\202\344\330T<\203\302\315\202\321;\203\313\316\202\321:\205\321\317DCDE\203\343\326\327DC#\210*9\203\f8\203\f7\203\f\315FGH\331HG\"A*JH\332\333I\210\202\345\315FGH\331HG\"A*JH\332\321I\210\202\345 \334=\203\272\315FGH\331HG\"A*JH\306H\203\272\315FGH\331HG\"A*JH\332H\203\345\327\335T\315FGH\331HG\"A*JH\332H\315=\203z\336\202\265\315FGH\331HG\"A*JH\332H\316=\203\227\337\202\265\315FGH\331HG\"A*JH\332H\317=\203\264\340\202\265\341#\210\202\345 \310=\203\372\315FGH\331HG\"A*JH\306H\204\3451\342>\204\345\343T\344\345!DCDE\203\366\326\327DC#\210*\202\345\346\347\315\350#\347\315\351#I@J%\210\352@\353?#?\346\347\316\350#\347\316\351#K@J%\210\352@\354>#>L\203S\346\347\317\350#\347\317\351#M@J%\210\352@\355=#=?3>4=5L\203u9\203u\356\321>=$\210\202\253L\203\2138\203\213\356?\321=$\210\202\253L\203\2417\203\241\356?>\321$\210\202\253\356?>=$\210\315FGH\331HG\"A*JH\306HG\316FGH\331HG\"A*JH\306HG\\=\203\370A\204\370\317FGH\331HG\"A*JH\306HG\202\371\312\\69\203 8\203 7\204&9\204U8\204UL\2037\204U6\312=\203U\315FGH\331HG\"A*JH\332\333I\210\357TCCDE\203Q\326\327DC#\210*\202\3456\312=\203\317\335T9\203~\315FGH\331HG\"A*JH\332\315I\210\336\202\2718\203\235\315FGH\331HG\"A*JH\332\316I\210\337\202\2717\205\271\315FGH\331HG\"A*JH\332\317I\210\340DCDE\203\313\326\327DC#\210*\202\345\315FGH\331HG\"A*JH\332\321I\210\360!. \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" "" (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) "\305=\203@ \203@\n\306=\204@\n\307=\204@ \310\311\312\f#\310\311\313\f#ZV\203; \310\314\312\f#\310\314\313\f#ZV\203;\315\f\316\"\207\315\f\317\"\207\306=\205J\315\f\317\"\207" [ediff-auto-refine ediff-use-faces ediff-highlighting-style ediff-auto-refine-limit n on off ascii ediff-get-diff-posn A end beg B ediff-make-fine-diffs noforce skip] 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\211&'\315\211()\315\211*\n +\316\317 ,\"J+H!\210\317 ,\"J+H\320\315I\210*-A-#\203\214\321#!\203\214\322\321#!!\203\214r#q\210 b\210)\202\230.\323=\204\230\324/!\2100\203\264 \313=\203\264\325\n!\211&\203\264\326&\n\"\202k-\203UT-@\211( \311=\203\314\327\202\327 \312=\203\326\330\202\327\331H)( \311=\203\346\320\202\361 \312=\203\360\332\202\361\333H)\204\376\203L%\203.\321%!\203.\322\321%!!\203.r%q\210\334)T#\")\334#\335#)\202:.\323=\204:\324/!\210\336)##*'*C\244'-A\211-\204\271 ,1\337 1\"A*J\nH\320\340'!I.\n\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 ediff-control-buffer ctl-buf 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-convert-fine-diffs-to-overlays #[(diff-list region-num) "\303\304 #\210\303\305 #\210\n\205\303\306 #\207" [diff-list region-num ediff-3way-job ediff-set-fine-overlays-in-one-buffer A B C] 4]) (put 'ediff-convert-fine-diffs-to-overlays 'byte-optimizer 'byte-compile-inline-expand) (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-number 1 3] 5]) (defalias 'ediff-extract-diffs3 #[(diff-buffer word-mode three-way-comp &optional bounds) " \n \306\307\306\307\306\307\306\307\211\211\211#$%&'()*+,-./0\2034\310\2025\311$B$1\203}1@2\3122!\205O\3132!)#1A@2\3122!\205c\3132!)3\205|\314182\3122!\205{\3132!)/\203\250\315/!\203\250\316\315/!!\203\250r/q\210#\203\241#\202\242eb\210)\202\2644\317=\204\264\3205!\210.\203\335\315.!\203\335\316\315.!!\203\335r.q\210 \203\326 \202\327eb\210)\202\3514\317=\204\351\3205!\2103\203#-\203\315-!\203\316\315-!!\203r-q\210\f\203\f\202eb\210)\202#4\317=\204#\3205!\210,\203e\315,!\203e\316\315,!!\203e,\203Y\315,!\203Y\316\315,!!\203Yr,q\210eb\210)\202e4\317=\204e\3205!\2106\203\327\3156!\203\327\316\3156!!\203\327r6q\210eb\210\3217\307\322#\203\323\323\314!\210\306\224\306\225{83\204\2428\324\230\204\317\325\326!@9\325\326!A@:\325\327!@;\325\327!A@<\325\324!@=\325\324!A@>8\326\230\203\324\330\202\3418\327\230\203\337\331\202\341?\211@\332>\203\355\333\202\356\334A8\326\230\203\373\334\2028\327\230\203\333\2028\324\230\205\335B\307\211CD\307\211EF\307\211GH\307\211IJ\307\211KL\307M=>UC3\203H=D>E\202b?\336=\203Z;D<E\202b9D:E0\203\242$\3379+Z:9Z;)Z<;ZD'ZEDZ\307\211\211\211\211& C\244$:+<)E'\202\315/\203\315/!\203\316\315/!!\203r/q\210\340\341!\203\313!\203\313\306\202\314\342\211N\306=\203\330\341\342!\210*\206\343#\206\343eb\2109+Zy\210`F:9Zy\210`G:+G*N\306=\203 \341N!\210*\2024\317=\204\3205!\210.\203\213\315.!\203\213\316\315.!!\203\213r.q\210\340\341!\203F!\203F\306\202G\342\211N\306=\203S\341\342!\210(\206] \206]eb\210;)Zy\210`H<;Zy\210`I<)I(N\306=\203\207\341N!\210*\202\2274\317=\204\227\3205!\210-\203\315-!\203\316\315-!!\203r-q\210\340\341!\203\300!\203\300\306\202\301\342\211N\306=\203\315\341\342!\210&\206\327\f\206\327eb\210D'Zy\210`JEDZy\210`KE'K&N\306=\203\341N!\210*\2024\317=\204\3205!\210,\203\220\315,!\203\220\316\315,!!\203\220,\203\204\315,!\203\204\316\315,!!\203\204r,q\210\340\341!\203O!\203O\306\202P\342\211N\306=\203\\\341\342!\210=%Zy\210`L>=Zy\210`M>%N\306=\203\200\341N!\210*\202\2204\317=\204\220\3205!\210$3\203\260\337FGHIJK\307\211B\307\211& C\202\312\337FGHIJKLMA@C& C\244$.)\202\202)\202\3434\317=\204\343\3205!\210$.\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 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 boundp longlines-mode 0 shift-A diff-list anc-prev c-prev-pt c-prev b-prev-pt b-prev a-prev-pt a-prev anc-buffer C-buffer B-buffer A-buffer word-mode bounds overl 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 longlines-mode-val] 16]) (defalias 'ediff-setup-diff-regions3 #[(file-A file-B file-C) "\306\307\"\203 \310\311!\210 \203\312 !\203\313\312 !!\204$\314\315\316\317\"!\320\321!\210\322\n \323 \f &\210\324 \"\210\325\326 $!\207" [ediff-diff-options ediff-diff-buffer ediff-diff3-program ediff-actual-diff3-options file-A file-B string-match "^-i\\| -i\\|\\(^\\| \\)-[^- ]+i" error "Option `-i' is not allowed in `ediff-diff3-options'" 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 file-C 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 (#$ . -31060)) (make-variable-buffer-local 'ediff-forward-word-function) #@113 *Characters constituting white space. These characters are ignored when differing regions are split into words. (defvar ediff-whitespace " \n \f \240" (#$ . -31301)) (make-variable-buffer-local 'ediff-whitespace) #@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 "-[:word:]_" (#$ . -31521)) (make-variable-buffer-local 'ediff-word-1) #@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.," (#$ . -31778)) (make-variable-buffer-local 'ediff-word-2) #@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 "`'?!:;\"{}[]()" (#$ . -32030)) (make-variable-buffer-local 'ediff-word-3) #@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) (#$ . -32291)) (make-variable-buffer-local 'ediff-word-4) #@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 (#$ . 32604)]) (defalias 'ediff-wordify #[(beg end in-buffer out-buffer &optional control-buf) "\203+\203\306!\203\307\306!!\203rq\210 )\202,\n\310=\206,\311 !\202, \312\211\211\212q\210\203f\203Z\306!\203Z\307\306!!\203Zrq\210)\202h\n\310=\206h\311 !\202h\313 \314\"q\210\315!\210\316 \210\fc\210eb\210\312w\210e`|\210m?\205\246 \210`\312w\210 `|\210\317c\210\202\214-\207" [control-buf ediff-forward-word-function this-command ediff-KILLED-VITAL-BUFFER diff-string sv-point get-buffer buffer-name ediff-quit error nil syntax-table buffer-substring-no-properties set-syntax-table erase-buffer "\n" inbuf-syntax-tbl forward-word-function in-buffer ediff-syntax-table beg end out-buffer ediff-whitespace] 4]) (defalias 'ediff-copy-to-buffer #[(beg end in-buffer out-buffer) "rq\210\304 \210\305 \n #\210eb)\207" [out-buffer in-buffer beg end erase-buffer insert-buffer-substring] 4]) (defalias 'ediff-goto-word #[(n buf &optional flag) " \f\203W\306\f!\203W\307\306\f!!\203Wr\fq\210 \310w\210\311 p\312\216\313\n!\210\314V\203B \210 \310w\210S\211\202-\203Q\315V\203Q \210+`)\202b\316=\206b\317!*\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 1 0 ediff-quit error #1# #2# n flag this-command ediff-KILLED-VITAL-BUFFER] 4]) #@54 Return t if files F1 and F2 have identical contents. (defalias 'ediff-same-file-contents #[(f1 f2) "\305!?\205*\305 !?\205*\306\307\n\310\211\211\311 \312!\312 !D\"&\211\247\205)\f\313=)\207" [f1 f2 ediff-cmp-program ediff-cmp-options res file-directory-p apply call-process nil append expand-file-name 0] 12 (#$ . 34592)]) #@264 Returns t iff D1 and D2 have the same content. D1 and D2 can either be both directories or both regular files. Symlinks and the likes are not handled. If FILTER-RE is non-nil, recursive checking in directories affects only files whose names match the expression. (defalias 'ediff-same-contents #[(d1 d2 &optional filter-re) "G\306V\204 \307\310\311 \n$\210\312 !\203T\312\n!\203T \204-\313\314!\203+\315\202-\316 \315=\205d\317 \320#\317\n\320#\321\322\f\"\321\322 \"\323#,\207\324 !\205d\324\n!\205d\325 \n\"\207" [filter-re d1 d2 ediff-recurse-to-subdirectories all-entries-1 all-entries-2 0 nil message "Comparing '%s' and '%s' modulo '%s'" file-directory-p y-or-n-p "Compare subdirectories recursively? " yes no directory-files t ediff-delete-all-matches "^\\.\\.?$" ediff-same-file-contents-lists file-regular-p ediff-same-file-contents entries-1 entries-2] 5 (#$ . 34930)]) (defalias 'ediff-same-file-contents-lists #[(entries-1 entries-2 filter-re) "G GU\2059\304\305\"\304\305 \"\232\2059\306\2036\n\2036\307@ @ #\2031A A\202\310\202)?\207" [entries-1 entries-2 continue filter-re mapcar file-name-nondirectory t ediff-same-contents nil] 4]) (defalias 'ediff-delete-all-matches #[(regex file-list-list) "\304\211\n\203\n@\305 \306!\"\204 B\nA\211\204\307 !*\207" [elt result file-list-list regex nil string-match file-name-nondirectory reverse] 5]) (defalias 'ediff-set-actual-diff-options #[nil "\203 \306\nQ\f\306 Q\202 \f\307\303 \"\210\307\310\"\207" [ediff-ignore-case ediff-diff-options ediff-ignore-case-option ediff-actual-diff-options ediff-diff3-options ediff-ignore-case-option3 " " set-default ediff-actual-diff3-options] 3]) (defalias 'ediff-toggle-ignore-case #[nil "\306\307!\204 \310\311 \"\210)\n?\312 \210\n\203\313\314!\210\202#\313\315!\210 \203+\313\316!\207\f\2039 \317\230\2039\313\320!\207\204I\317\230\203I\313\321!\207\322\323!\210\324 \207" [meta-buf-p this-command ediff-ignore-case ediff-merge-job ediff-diff3-job ediff-ignore-case-option3 nil ediff-in-control-buffer-p error "%S: This command runs in Ediff Control Buffer only!" ediff-set-actual-diff-options message "Ignoring regions that differ only in case" "Ignoring case differences turned OFF" "Ignoring letter case is too dangerous in merge jobs" "" "Ignoring letter case is not supported by this diff3 program" "Ignoring letter case is not supported by this diff program" sit-for 1 ediff-update-diffs ediff-3way-job ediff-ignore-case-option] 3 nil nil]) (provide 'ediff-diff)