Mercurial > hg > xemacs-beta
diff lisp/ediff/ediff-init.el @ 12:bcdc7deadc19 r19-15b7
Import from CVS: tag r19-15b7
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:48:16 +0200 |
parents | 376386a54a3c |
children | 9ee227acff29 |
line wrap: on
line diff
--- a/lisp/ediff/ediff-init.el Mon Aug 13 08:47:56 2007 +0200 +++ b/lisp/ediff/ediff-init.el Mon Aug 13 08:48:16 2007 +0200 @@ -62,8 +62,8 @@ (ediff-force-faces) (ediff-emacs-p (memq (ediff-device-type) '(pc))) (ediff-xemacs-p (memq (ediff-device-type) '(tty pc))))) - - + + ;; Defines SYMBOL as an advertised local variable. ;; Performs a defvar, then executes `make-variable-buffer-local' on ;; the variable. Also sets the `permanent-local' property, @@ -282,6 +282,15 @@ ediff-merge-directory-revisions-with-ancestor ;; add more here ))) +(defsubst ediff-merge-metajob (&optional metajob) + (memq (or metajob ediff-metajob-name) + '(ediff-merge-directories + ediff-merge-directories-with-ancestor + ediff-merge-directory-revisions + ediff-merge-directory-revisions-with-ancestor + ediff-merge-filegroups-with-ancestor + ;; add more here + ))) (defsubst ediff-metajob3 (&optional metajob) (memq (or metajob ediff-metajob-name) @@ -293,13 +302,18 @@ (memq (or metajob ediff-metajob-name) '(ediff-directories3 ediff-filegroups3))) -(defsubst ediff-barf-if-not-control-buffer (&optional meta-buf) - (or (eq (if meta-buf ediff-meta-buffer ediff-control-buffer) - (current-buffer)) +;; with no argument, checks if we are in ediff-control-buffer +;; with argument, checks if we are in ediff-meta-buffer +(defun ediff-in-control-buffer-p (&optional meta-buf-p) + (and (boundp 'ediff-control-buffer) + (eq (if meta-buf-p ediff-meta-buffer ediff-control-buffer) + (current-buffer)))) + +(defsubst ediff-barf-if-not-control-buffer (&optional meta-buf-p) + (or (ediff-in-control-buffer-p meta-buf-p) (error "%S: This command runs in Ediff Control Buffer only!" this-command))) - ;; Hook variables (defvar ediff-before-setup-windows-hook nil @@ -345,125 +359,10 @@ "*Hooks to run on exiting Ediff but before killing the control buffer. This is a place to do various cleanups, such as deleting the variant buffers. Ediff provides a function, `ediff-janitor', as one such possible hook.") - - -;; Help messages - -(defconst ediff-long-help-message-head - " Moving around | Toggling features | Manipulations -=====================|===========================|=============================" - "The head of the full help message.") -(defconst ediff-long-help-message-tail - "=====================|===========================|============================= - R -show registry | | M -show session group - D -diff output | E -browse Ediff manual| G -send bug report - i -status info | ? -help off | z/q -suspend/quit -------------------------------------------------------------------------------- -X,Y (x,y) on the left are meta-symbols for the keys A,B,C (a,b,c). -X,Y on the right are meta-symbols for buffers A,B,C. -A,B,C on the right denote the working buffers A,B,C, respectively." - "The tail of the full-help message.") +(defvar ediff-quit-merge-hook 'ediff-maybe-save-and-delete-merge + "*Hooks to run before quitting a merge job. +The most common use is to save and delete the merge buffer.") -(defconst ediff-long-help-message-compare3 - " -p,DEL -previous diff | | -vert/horiz split | xy -copy buf X's region to Y -n,SPC -next diff | h -hiliting | rx -restore buf X's old diff - j -jump to diff | @ -auto-refinement | * -refine current region - gx -goto X's point| | ! -update diff regions - C-l -recenter | ## -ignore whitespace | - v/V -scroll up/dn | #f/#h -focus/hide regions | wx -save buf X - </> -scroll lt/rt | X -read-only in buf X | wd -save diff output - | m -wide display | ~ -rotate buffers -" - "Help message usually used for 3-way comparison. -Normally, not a user option. See `ediff-help-message' for details.") - -(defconst ediff-long-help-message-compare2 - " -p,DEL -previous diff | | -vert/horiz split |a/b -copy A/B's region to B/A -n,SPC -next diff | h -hiliting | rx -restore buf X's old diff - j -jump to diff | @ -auto-refinement | * -refine current region - gx -goto X's point| | ! -update diff regions - C-l -recenter | ## -ignore whitespace | - v/V -scroll up/dn | #f/#h -focus/hide regions | wx -save buf X - </> -scroll lt/rt | X -read-only in buf X | wd -save diff output - ~ -swap variants | m -wide display | -" - "Help message usually used for 2-way comparison. -Normally, not a user option. See `ediff-help-message' for details.") - -(defconst ediff-long-help-message-narrow2 - " -p,DEL -previous diff | | -vert/horiz split |a/b -copy A/B's region to B/A -n,SPC -next diff | h -hiliting | rx -restore buf X's old diff - j -jump to diff | @ -auto-refinement | * -refine current region - gx -goto X's point| % -narrow/widen buffs | ! -update diff regions - C-l -recenter | ## -ignore whitespace | - v/V -scroll up/dn | #f/#h -focus/hide regions | wx -save buf X - </> -scroll lt/rt | X -read-only in buf X | wd -save diff output - ~ -swap variants | m -wide display | -" - "Help message when comparing windows or regions line-by-line. -Normally, not a user option. See `ediff-help-message' for details.") - -(defconst ediff-long-help-message-word-mode - " -p,DEL -previous diff | | -vert/horiz split | xy -copy buf X's region to Y -n,SPC -next diff | h -hiliting | rx -restore buf X's old diff - j -jump to diff | | - gx -goto X's point| % -narrow/widen buffs | ! -recompute diffs - C-l -recenter | | - v/V -scroll up/dn | #f/#h -focus/hide regions | wx -save buf X - </> -scroll lt/rt | X -read-only in buf X | wd -save diff output - ~ -swap variants | m -wide display | -" - "Help message when comparing windows or regions word-by-word. -Normally, not a user option. See `ediff-help-message' for details.") - -(defconst ediff-long-help-message-merge - " -p,DEL -previous diff | | -vert/horiz split | x -copy buf X's region to C -n,SPC -next diff | h -hiliting | r -restore buf C's old diff - j -jump to diff | @ -auto-refinement | * -refine current region - gx -goto X's point| ## -ignore whitespace | ! -update diff regions - C-l -recenter | #f/#h -focus/hide regions | + -combine diff regions - v/V -scroll up/dn | X -read-only in buf X | wx -save buf X - </> -scroll lt/rt | m -wide display | wd -save diff output - ~ -swap variants | s -shrink window C | / -show ancestor buff - | $ -show clashes only | & -merge w/new default -" - "Help message during merging. -Normally, not a user option. See `ediff-help-message' for details.") - -;; The actual long help message. -(ediff-defvar-local ediff-long-help-message "" - "Normally, not a user option. See `ediff-help-message' for details.") - -(defconst ediff-brief-message-string - " ? - help " - "Contents of the brief help message.") -;; The actual brief help message -(ediff-defvar-local ediff-brief-help-message "" - "Normally, not a user option. See `ediff-help-message' for details.") - -(ediff-defvar-local ediff-brief-help-message-function nil - "The brief help message that the user can customize. -If the user sets this to a parameter-less function, Ediff will use it to -produce the brief help message. This function must return a string.") -(ediff-defvar-local ediff-long-help-message-function nil - "The long help message that the user can customize. -See `ediff-brief-help-message-function' for more.") - -(defvar ediff-use-long-help-message nil - "*If t, Ediff displays a long help message. Short help message otherwise.") - -;; The actual help message. -(ediff-defvar-local ediff-help-message "" - "The actual help message. -Normally, the user shouldn't touch this. However, if you want Ediff to -start up with different help messages for different jobs, you can change -the value of this variable and the variables `ediff-help-message-*' in -`ediff-startup-hook'.") ;; Error messages (defconst ediff-KILLED-VITAL-BUFFER @@ -473,6 +372,12 @@ (defconst ediff-BAD-DIFF-NUMBER ;; %S stands for this-command, %d - diff number, %d - max diff "%S: Bad diff region number, %d. Valid numbers are 1 to %d") +(defconst ediff-BAD-INFO (format " +*** The Info file for Ediff, a part of the standard distribution +*** of %sEmacs, does not seem to be properly installed. +*** +*** Please contact your system administrator. " + (if ediff-xemacs-p "X" ""))) ;; Selective browsing @@ -513,12 +418,6 @@ (ediff-defvar-local ediff-hide-regexp-connective 'and "") -(defvar ediff-ange-ftp-ftp-name (if ediff-xemacs-p - 'ange-ftp-ftp-path - 'ange-ftp-ftp-name) - "Function ange-ftp uses to find out if file is remote.") - - ;; Copying difference regions between buffers. (ediff-defvar-local ediff-killed-diffs-alist nil "A list of killed diffs. @@ -613,8 +512,8 @@ (ediff-defvar-local ediff-buffer-values-orig-Ancestor nil "") ;; Buffer-local variables to be saved then restored during Ediff sessions ;; Buffer-local variables to be saved then restored during Ediff sessions -(defconst ediff-protected-variables '(buffer-read-only -;;; synchronize-minibuffers +(defconst ediff-protected-variables '( + ;;buffer-read-only mode-line-format)) ;; Vector of differences between the variants. Each difference is @@ -694,7 +593,6 @@ (fset 'ediff-delete-overlay (symbol-function 'delete-extent))) (fset 'ediff-read-event (symbol-function 'read-event)) (fset 'ediff-overlayp (symbol-function 'overlayp)) - (fset 'ediff-overlayp (symbol-function 'overlayp)) (fset 'ediff-make-overlay (symbol-function 'make-overlay)) (fset 'ediff-delete-overlay (symbol-function 'delete-overlay))) @@ -859,6 +757,15 @@ (copy-face 'secondary-selection face)))) )) +(defun ediff-set-face-pixmap (face pixmap) + "Set face pixmap on a monochrome display." + (if (and (ediff-window-display-p) (not (ediff-color-display-p))) + (condition-case nil + (set-face-background-pixmap face pixmap) + (error + (message "Pixmap not found for %S: %s" (face-name face) pixmap) + (sit-for 1))))) + (defun ediff-hide-face (face) (if (and (ediff-has-face-support-p) ediff-emacs-p) (add-to-list 'facemenu-unlisted-faces face))) @@ -928,9 +835,17 @@ (ediff-hide-face 'ediff-current-diff-face-Ancestor) (or (face-differs-from-default-p 'ediff-current-diff-face-Ancestor) (copy-face - 'ediff-current-diff-face-C 'ediff-current-diff-face-Ancestor)))) + 'ediff-current-diff-face-C 'ediff-current-diff-face-Ancestor)) + 'ediff-current-diff-face-Ancestor)) "Face for highlighting the selected difference in the ancestor buffer.") +(defvar ediff-fine-diff-pixmap "gray3" + "Pixmap to use for highlighting fine differences.") +(defvar ediff-odd-diff-pixmap "gray1" + "Pixmap to use for highlighting odd differences.") +(defvar ediff-even-diff-pixmap "Stipple" + "Pixmap to use for highlighting even differences.") + (defvar ediff-fine-diff-face-A (if (ediff-has-face-support-p) (progn @@ -942,7 +857,11 @@ "Navy") (ediff-set-face 'background 'ediff-fine-diff-face-A "sky blue")) - (t (set-face-underline-p 'ediff-fine-diff-face-A t)))) + (t + (set-face-underline-p 'ediff-fine-diff-face-A t) + (ediff-set-face-pixmap 'ediff-fine-diff-face-A + ediff-fine-diff-pixmap) + ))) 'ediff-fine-diff-face-A)) "Face for highlighting the refinement of the selected diff in buffer A.") @@ -955,7 +874,11 @@ (cond ((ediff-color-display-p) (ediff-set-face 'foreground 'ediff-fine-diff-face-B "Black") (ediff-set-face 'background 'ediff-fine-diff-face-B "cyan")) - (t (set-face-underline-p 'ediff-fine-diff-face-B t)))) + (t + (set-face-underline-p 'ediff-fine-diff-face-B t) + (ediff-set-face-pixmap 'ediff-fine-diff-face-B + ediff-fine-diff-pixmap) + ))) 'ediff-fine-diff-face-B)) "Face for highlighting the refinement of the selected diff in buffer B.") @@ -969,7 +892,11 @@ (ediff-set-face 'foreground 'ediff-fine-diff-face-C "black") (ediff-set-face 'background 'ediff-fine-diff-face-C "Turquoise")) - (t (set-face-underline-p 'ediff-fine-diff-face-C t)))) + (t + (set-face-underline-p 'ediff-fine-diff-face-C t) + (ediff-set-face-pixmap 'ediff-fine-diff-face-C + ediff-fine-diff-pixmap) + ))) 'ediff-fine-diff-face-C)) "Face for highlighting the refinement of the selected diff in buffer C.") @@ -979,8 +906,12 @@ (make-face 'ediff-fine-diff-face-Ancestor) (ediff-hide-face 'ediff-fine-diff-face-Ancestor) (or (face-differs-from-default-p 'ediff-fine-diff-face-Ancestor) - (copy-face - 'ediff-fine-diff-face-C 'ediff-fine-diff-face-Ancestor)))) + (progn + (copy-face + 'ediff-fine-diff-face-C 'ediff-fine-diff-face-Ancestor) + (ediff-set-face-pixmap 'ediff-fine-diff-face-Ancestor + ediff-fine-diff-pixmap)) + ))) "Face highlighting refinements of the selected diff in ancestor buffer. Presently, this is not used, as difference regions are not refined in the ancestor buffer.") @@ -997,7 +928,10 @@ (ediff-set-face 'background 'ediff-even-diff-face-A "light grey")) (t - (copy-face 'italic 'ediff-even-diff-face-A)))) + (copy-face 'italic 'ediff-even-diff-face-A) + (ediff-set-face-pixmap 'ediff-even-diff-face-A + ediff-even-diff-pixmap) + ))) 'ediff-even-diff-face-A)) "Face used to highlight even-numbered differences in buffer A.") @@ -1013,7 +947,10 @@ (ediff-set-face 'background 'ediff-even-diff-face-B "Gray")) (t - (copy-face 'italic 'ediff-even-diff-face-B)))) + (copy-face 'italic 'ediff-even-diff-face-B) + (ediff-set-face-pixmap 'ediff-even-diff-face-B + ediff-even-diff-pixmap) + ))) 'ediff-even-diff-face-B)) "Face used to highlight even-numbered differences in buffer B.") @@ -1023,7 +960,10 @@ (make-face 'ediff-even-diff-face-C) (ediff-hide-face 'ediff-even-diff-face-C) (or (face-differs-from-default-p 'ediff-even-diff-face-C) - (copy-face 'ediff-even-diff-face-A 'ediff-even-diff-face-C)) + (progn + (copy-face 'ediff-even-diff-face-A 'ediff-even-diff-face-C) + (ediff-set-face-pixmap 'ediff-even-diff-face-C + ediff-even-diff-pixmap))) 'ediff-even-diff-face-C)) "Face used to highlight even-numbered differences in buffer C.") @@ -1033,7 +973,11 @@ (make-face 'ediff-even-diff-face-Ancestor) (ediff-hide-face 'ediff-even-diff-face-Ancestor) (or (face-differs-from-default-p 'ediff-even-diff-face-Ancestor) - (copy-face 'ediff-even-diff-face-C 'ediff-even-diff-face-Ancestor)) + (progn + (copy-face + 'ediff-even-diff-face-C 'ediff-even-diff-face-Ancestor) + (ediff-set-face-pixmap 'ediff-even-diff-face-Ancestor + ediff-even-diff-pixmap))) 'ediff-even-diff-face-Ancestor)) "Face highlighting even-numbered differences in the ancestor buffer.") @@ -1049,7 +993,10 @@ (ediff-set-face 'background 'ediff-odd-diff-face-A "Gray")) (t - (copy-face 'italic 'ediff-odd-diff-face-A)))) + (copy-face 'italic 'ediff-odd-diff-face-A) + (ediff-set-face-pixmap 'ediff-odd-diff-face-A + ediff-odd-diff-pixmap) + ))) 'ediff-odd-diff-face-A)) "Face used to highlight odd-numbered differences in buffer A.") @@ -1065,7 +1012,10 @@ (ediff-set-face 'background 'ediff-odd-diff-face-B "light grey")) (t - (copy-face 'italic 'ediff-odd-diff-face-B)))) + (copy-face 'italic 'ediff-odd-diff-face-B) + (ediff-set-face-pixmap 'ediff-odd-diff-face-B + ediff-odd-diff-pixmap) + ))) 'ediff-odd-diff-face-B)) "Face used to highlight odd-numbered differences in buffer B.") @@ -1075,7 +1025,10 @@ (make-face 'ediff-odd-diff-face-C) (ediff-hide-face 'ediff-odd-diff-face-C) (or (face-differs-from-default-p 'ediff-odd-diff-face-C) - (copy-face 'ediff-odd-diff-face-A 'ediff-odd-diff-face-C)) + (progn + (copy-face 'ediff-odd-diff-face-A 'ediff-odd-diff-face-C) + (ediff-set-face-pixmap 'ediff-odd-diff-face-C + ediff-odd-diff-pixmap))) 'ediff-odd-diff-face-C)) "Face used to highlight odd-numbered differences in buffer C.") @@ -1085,7 +1038,10 @@ (make-face 'ediff-odd-diff-face-Ancestor) (ediff-hide-face 'ediff-odd-diff-face-Ancestor) (or (face-differs-from-default-p 'ediff-odd-diff-face-Ancestor) - (copy-face 'ediff-odd-diff-face-C 'ediff-odd-diff-face-Ancestor)) + (progn + (copy-face 'ediff-odd-diff-face-C 'ediff-odd-diff-face-Ancestor) + (ediff-set-face-pixmap 'ediff-odd-diff-face-Ancestor + ediff-odd-diff-pixmap))) 'ediff-odd-diff-face-Ancestor)) "Face used to highlight even-numbered differences in the ancestor buffer.") @@ -1143,6 +1099,15 @@ ;; if nil, this silences some messages (defconst ediff-verbose-p t) + +(ediff-defvar-local ediff-autostore-merges 'group-jobs-only + "*Save the results of merge jobs automatically. +Nil means don't save automatically. t means always save. Anything but nil or t +means save automatically only if the merge job is part of a group of jobs, such +as `ediff-merge-directory' or `ediff-merge-directory-revisions'.") + +;; file where the result of the merge is to be saved. used internally +(ediff-defvar-local ediff-merge-store-file nil "") (defvar ediff-no-emacs-help-in-control-buffer nil "*Non-nil means C-h should not invoke Emacs help in control buffer. @@ -1188,9 +1153,10 @@ ;;; In-line functions (defsubst ediff-file-remote-p (file-name) - (if (fboundp ediff-ange-ftp-ftp-name) - (funcall ediff-ange-ftp-ftp-name file-name))) - + (require 'ange-ftp) + (car (if ediff-xemacs-p + (ange-ftp-ftp-path file-name) + (ange-ftp-ftp-name file-name)))) (defsubst ediff-frame-unsplittable-p (frame) (cdr (assq 'unsplittable (frame-parameters frame)))) @@ -1206,7 +1172,93 @@ "Kill buffer BUF if it exists." (if (ediff-buffer-live-p buf) (kill-buffer (get-buffer buf)))) - + + +;; activate faces on diff regions in buffer +(defun ediff-paint-background-regions-in-one-buffer (buf-type unhighlight) + (let ((diff-vector + (eval (intern (format "ediff-difference-vector-%S" buf-type)))) + overl diff-num) + (mapcar (function + (lambda (rec) + (setq overl (ediff-get-diff-overlay-from-diff-record rec) + diff-num (ediff-overlay-get overl 'ediff-diff-num)) + (ediff-set-overlay-face + overl + (if (not unhighlight) + (ediff-background-face buf-type diff-num)) + ))) + diff-vector))) + + +;; activate faces on diff regions in all buffers +(defun ediff-paint-background-regions (&optional unhighlight) + (ediff-paint-background-regions-in-one-buffer + 'A unhighlight) + (ediff-paint-background-regions-in-one-buffer + 'B unhighlight) + (ediff-paint-background-regions-in-one-buffer + 'C unhighlight) + (ediff-paint-background-regions-in-one-buffer + 'Ancestor unhighlight)) + +(defun ediff-highlight-diff-in-one-buffer (n buf-type) + (if (ediff-buffer-live-p (ediff-get-buffer buf-type)) + (let* ((buff (ediff-get-buffer buf-type)) + (last (ediff-eval-in-buffer buff (point-max))) + (begin (ediff-get-diff-posn buf-type 'beg n)) + (end (ediff-get-diff-posn buf-type 'end n)) + (xtra (if (equal begin end) 1 0)) + (end-hilit (min last (+ end xtra))) + (current-diff-overlay + (symbol-value + (intern (format "ediff-current-diff-overlay-%S" buf-type))))) + + (if ediff-xemacs-p + (ediff-move-overlay current-diff-overlay begin end-hilit) + (ediff-move-overlay current-diff-overlay begin end-hilit buff)) + (ediff-overlay-put current-diff-overlay 'priority + (ediff-highest-priority begin end-hilit buff)) + (ediff-overlay-put current-diff-overlay 'ediff-diff-num n) + + ;; unhighlight the background overlay for diff n so it won't + ;; interfere with the current diff overlay + (ediff-set-overlay-face (ediff-get-diff-overlay n buf-type) nil) + ))) + + +(defun ediff-unhighlight-diff-in-one-buffer (buf-type) + (if (ediff-buffer-live-p (ediff-get-buffer buf-type)) + (let ((current-diff-overlay + (symbol-value + (intern (format "ediff-current-diff-overlay-%S" buf-type)))) + (overlay + (ediff-get-diff-overlay ediff-current-difference buf-type)) + ) + + (ediff-move-overlay current-diff-overlay 1 1) + + ;; rehighlight the overlay in the background of the + ;; current difference region + (ediff-set-overlay-face + overlay + (if (and (ediff-has-face-support-p) + ediff-use-faces ediff-highlight-all-diffs) + (ediff-background-face buf-type ediff-current-difference))) + ))) + +(defun ediff-unhighlight-diffs-totally-in-one-buffer (buf-type) + (ediff-unselect-and-select-difference -1) + (if (and (ediff-has-face-support-p) ediff-use-faces) + (let* ((inhibit-quit t) + (current-diff-overlay-var + (intern (format "ediff-current-diff-overlay-%S" buf-type))) + (current-diff-overlay (symbol-value current-diff-overlay-var))) + (ediff-paint-background-regions 'unhighlight) + (if (ediff-overlayp current-diff-overlay) + (ediff-delete-overlay current-diff-overlay)) + (set current-diff-overlay-var nil) + ))) (defsubst ediff-highlight-diff (n) "Put face on diff N. Invoked for X displays only." @@ -1363,6 +1415,7 @@ (glyph-height ediff-H-glyph (selected-window frame)) (frame-char-height frame))) +;; Some overlay functions (defsubst ediff-empty-overlay-p (overl) (= (ediff-overlay-start overl) (ediff-overlay-end overl))) @@ -1380,6 +1433,32 @@ (if ediff-emacs-p (overlay-get overl property) (and (extent-live-p overl) (extent-property overl property)))) + + +;; These two functions are here because XEmacs refuses to +;; handle overlays whose buffers were deleted. +(defun ediff-move-overlay (overlay beg end &optional buffer) + "Calls `move-overlay' in Emacs and `set-extent-endpoints' in Lemacs. +Checks if overlay's buffer exists before actually doing the move." + (let ((buf (and overlay (ediff-overlay-buffer overlay)))) + (if (ediff-buffer-live-p buf) + (if ediff-xemacs-p + (set-extent-endpoints overlay beg end) + (move-overlay overlay beg end buffer)) + ;; buffer's dead + (if overlay + (ediff-delete-overlay overlay))))) + +(defun ediff-overlay-put (overlay prop value) + "Calls `overlay-put' or `set-extent-property' depending on Emacs version. +Checks if overlay's buffer exists." + (if (ediff-buffer-live-p (ediff-overlay-buffer overlay)) + (if ediff-xemacs-p + (set-extent-property overlay prop value) + (overlay-put overlay prop value)) + (ediff-delete-overlay overlay))) + +;; Some diff region tests ;; t if diff region is empty. ;; In case of buffer C, t also if it is not a 3way @@ -1512,9 +1591,18 @@ (ediff-file-attributes filename 5)) - +(defun ediff-convert-standard-filename (fname) + (if ediff-emacs-p + (convert-standard-filename fname) + ;; hopefully, XEmacs adds this functionality + fname)) - +;;; Local Variables: +;;; eval: (put 'ediff-defvar-local 'lisp-indent-hook 'defun) +;;; eval: (put 'ediff-eval-in-buffer 'lisp-indent-hook 1) +;;; eval: (put 'ediff-eval-in-buffer 'edebug-form-spec '(form body)) +;;; End: + (provide 'ediff-init)