summaryrefslogtreecommitdiff
path: root/lisp/ediff-init.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/ediff-init.el')
-rw-r--r--lisp/ediff-init.el431
1 files changed, 169 insertions, 262 deletions
diff --git a/lisp/ediff-init.el b/lisp/ediff-init.el
index 336f360f31a..729d6f76e19 100644
--- a/lisp/ediff-init.el
+++ b/lisp/ediff-init.el
@@ -1,8 +1,8 @@
;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
-;; Copyright (C) 1994, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02 Free Software Foundation, Inc.
-;; Author: Michael Kifer <kifer@cs.sunysb.edu>
+;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
;; This file is part of GNU Emacs.
@@ -35,6 +35,7 @@
(defvar ediff-whitespace)
(defvar ediff-multiframe)
(defvar ediff-use-toolbar-p)
+(defvar mswindowsx-bitmap-file-path)
(and noninteractive
(eval-when-compile
@@ -46,6 +47,15 @@
;; Is it Emacs?
(defconst ediff-emacs-p (not ediff-xemacs-p))
+;; This is used to avoid compilation warnings. When emacs/xemacs forms can
+;; generate compile time warnings, we use this macro.
+;; In this case, the macro will expand into the form that is appropriate to the
+;; compiler at hand.
+;; Suggested by rms.
+(defmacro ediff-cond-compile-for-xemacs-or-emacs (xemacs-form emacs-form)
+ (if (string-match "XEmacs" emacs-version)
+ xemacs-form emacs-form))
+
(defvar ediff-force-faces nil
"If t, Ediff will think that it is running on a display that supports faces.
This is provided as a temporary relief for users of face-capable displays
@@ -53,9 +63,10 @@ that Ediff doesn't know about.")
;; Are we running as a window application or on a TTY?
(defsubst ediff-device-type ()
- (if ediff-emacs-p
- window-system
- (device-type (selected-device))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (device-type (selected-device)) ; xemacs form
+ window-system ; emacs form
+ ))
;; in XEmacs: device-type is tty on tty and stream in batch.
(defun ediff-window-display-p ()
@@ -69,10 +80,12 @@ that Ediff doesn't know about.")
(ediff-emacs-p (memq (ediff-device-type) '(pc)))
(ediff-xemacs-p (memq (ediff-device-type) '(tty pc)))))
+;; toolbar support for emacs hasn't been implemented in ediff
(defun ediff-has-toolbar-support-p ()
- (and ediff-xemacs-p
- (featurep 'toolbar)
- (console-on-window-system-p)))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (and (featurep 'toolbar) (console-on-window-system-p)) ; xemacs form
+ nil ; emacs form
+ ))
(defun ediff-use-toolbar-p ()
(and (ediff-has-toolbar-support-p) ;Can it do it ?
@@ -108,6 +121,10 @@ that Ediff doesn't know about.")
;; The Ediff control buffer
(ediff-defvar-local ediff-control-buffer nil "")
+(ediff-defvar-local ediff-temp-indirect-buffer nil
+ "If t, the buffer is a temporary indirect buffer.
+It needs to be killed when we quit the session.")
+
;; Association between buff-type and ediff-buffer-*
(defconst ediff-buffer-alist
@@ -731,16 +748,18 @@ to temp files when Ediff needs to find fine differences."
:group 'ediff)
-(if ediff-xemacs-p
- (progn
- (fset 'ediff-read-event (symbol-function 'next-command-event))
- (fset 'ediff-overlayp (symbol-function 'extentp))
- (fset 'ediff-make-overlay (symbol-function 'make-extent))
- (fset 'ediff-delete-overlay (symbol-function 'delete-extent)))
- (fset 'ediff-read-event (symbol-function 'read-event))
- (fset 'ediff-overlayp (symbol-function 'overlayp))
- (fset 'ediff-make-overlay (symbol-function 'make-overlay))
- (fset 'ediff-delete-overlay (symbol-function 'delete-overlay)))
+(ediff-cond-compile-for-xemacs-or-emacs
+ (progn ; xemacs
+ (fset 'ediff-read-event (symbol-function 'next-command-event))
+ (fset 'ediff-overlayp (symbol-function 'extentp))
+ (fset 'ediff-make-overlay (symbol-function 'make-extent))
+ (fset 'ediff-delete-overlay (symbol-function 'delete-extent)))
+ (progn ; emacs
+ (fset 'ediff-read-event (symbol-function 'read-event))
+ (fset 'ediff-overlayp (symbol-function 'overlayp))
+ (fset 'ediff-make-overlay (symbol-function 'make-overlay))
+ (fset 'ediff-delete-overlay (symbol-function 'delete-overlay)))
+ )
;; Check the current version against the major and minor version numbers
;; using op: cur-vers op major.minor If emacs-major-version or
@@ -772,41 +791,43 @@ to temp files when Ediff needs to find fine differences."
(defun ediff-color-display-p ()
(condition-case nil
- (if ediff-emacs-p
- (if (fboundp 'display-color-p)
- (display-color-p)
- (x-display-color-p))
- (eq (device-class (selected-device)) 'color))
- (error
- nil)))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (eq (device-class (selected-device)) 'color) ; xemacs form
+ (if (fboundp 'display-color-p) ; emacs form
+ (display-color-p)
+ (x-display-color-p))
+ )
+ (error nil)))
(if (ediff-has-face-support-p)
- (if ediff-xemacs-p
- (progn
- (fset 'ediff-valid-color-p (symbol-function 'valid-color-name-p))
- (fset 'ediff-get-face (symbol-function 'get-face)))
- (fset 'ediff-valid-color-p (symbol-function
- (if (fboundp 'color-defined-p)
- 'color-defined-p
- 'x-color-defined-p)))
- (fset 'ediff-get-face (symbol-function 'internal-get-face))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (progn ; xemacs
+ (defalias 'ediff-valid-color-p 'valid-color-name-p)
+ (defalias 'ediff-get-face 'get-face))
+ (progn ; emacs
+ (defalias 'ediff-valid-color-p (if (fboundp 'color-defined-p)
+ 'color-defined-p
+ 'x-color-defined-p))
+ (defalias 'ediff-get-face 'internal-get-face))
+ ))
(if (ediff-window-display-p)
- (if ediff-xemacs-p
- (progn
- (fset 'ediff-display-pixel-width
- (symbol-function 'device-pixel-width))
- (fset 'ediff-display-pixel-height
- (symbol-function 'device-pixel-height)))
- (fset 'ediff-display-pixel-width (symbol-function
- (if (fboundp 'display-pixel-width)
- 'display-pixel-width
- 'x-display-pixel-width)))
- (fset 'ediff-display-pixel-height (symbol-function
- (if (fboundp 'display-pixel-height)
- 'display-pixel-height
- 'x-display-pixel-height)))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (progn ; xemacs
+ (fset 'ediff-display-pixel-width (symbol-function 'device-pixel-width))
+ (fset 'ediff-display-pixel-height
+ (symbol-function 'device-pixel-height)))
+ (progn ; emacs
+ (fset 'ediff-display-pixel-width
+ (if (fboundp 'display-pixel-width)
+ (symbol-function 'display-pixel-width)
+ (symbol-function 'x-display-pixel-width)))
+ (fset 'ediff-display-pixel-height
+ (if (fboundp 'display-pixel-height)
+ (symbol-function 'display-pixel-height)
+ (symbol-function 'x-display-pixel-height))))
+ ))
;; A-list of current-diff-overlay symbols associated with buf types
(defconst ediff-current-diff-overlay-alist
@@ -823,21 +844,6 @@ to temp files when Ediff needs to find fine differences."
(Ancestor . ediff-current-diff-face-Ancestor)))
-(defun ediff-make-current-diff-overlay (type)
- (if (ediff-has-face-support-p)
- (let ((overlay (ediff-get-symbol-from-alist
- type ediff-current-diff-overlay-alist))
- (buffer (ediff-get-buffer type))
- (face (face-name
- (symbol-value
- (ediff-get-symbol-from-alist
- type ediff-current-diff-face-alist)))))
- (set overlay
- (ediff-make-bullet-proof-overlay (point-max) (point-max) buffer))
- (ediff-set-overlay-face (symbol-value overlay) face)
- (ediff-overlay-put (symbol-value overlay) 'ediff ediff-control-buffer))
- ))
-
(defun ediff-set-overlay-face (extent face)
(ediff-overlay-put extent 'face face)
(ediff-overlay-put extent 'help-echo 'ediff-region-help-echo))
@@ -1194,31 +1200,33 @@ this variable represents.")
(defun ediff-highest-priority (start end buffer)
(let ((pos (max 1 (1- start)))
ovr-list)
- (if ediff-xemacs-p
- (1+ ediff-shadow-overlay-priority)
- (ediff-with-current-buffer buffer
- (while (< pos (min (point-max) (1+ end)))
- (setq ovr-list (append (overlays-at pos) ovr-list))
- (setq pos (next-overlay-change pos)))
- (+ 1 ediff-shadow-overlay-priority
- (apply 'max
- (cons
- 1
- (mapcar
- (lambda (ovr)
- (if (and ovr
- ;; exclude ediff overlays from priority
- ;; calculation, or else priority will keep
- ;; increasing
- (null (ediff-overlay-get ovr 'ediff))
- (null (ediff-overlay-get ovr 'ediff-diff-num)))
- ;; use the overlay priority or 0
- (or (ediff-overlay-get ovr 'priority) 0)
- 0))
- ovr-list)
- )
- ))
- ))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (1+ ediff-shadow-overlay-priority) ; xemacs form
+ ;; emacs form
+ (ediff-with-current-buffer buffer
+ (while (< pos (min (point-max) (1+ end)))
+ (setq ovr-list (append (overlays-at pos) ovr-list))
+ (setq pos (next-overlay-change pos)))
+ (+ 1 ediff-shadow-overlay-priority
+ (apply 'max
+ (cons
+ 1
+ (mapcar
+ (lambda (ovr)
+ (if (and ovr
+ ;; exclude ediff overlays from priority
+ ;; calculation, or else priority will keep
+ ;; increasing
+ (null (ediff-overlay-get ovr 'ediff))
+ (null (ediff-overlay-get ovr 'ediff-diff-num)))
+ ;; use the overlay priority or 0
+ (or (ediff-overlay-get ovr 'priority) 0)
+ 0))
+ ovr-list)
+ )
+ )))
+ ) ; ediff-cond-compile-for-xemacs-or-emacs
+ ))
(defvar ediff-toggle-read-only-function nil
@@ -1306,8 +1314,6 @@ This default should work without changes."
(ediff-defvar-local ediff-temp-file-C nil "")
-;;; In-line functions
-
;; If file-remote-p is defined (as in XEmacs, use it. Otherwise, check
;; if find-file-name-handler is defined for 'file-local-copy
(defun ediff-file-remote-p (file-name)
@@ -1375,93 +1381,6 @@ This default should work without changes."
(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-with-current-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
- (ediff-get-symbol-from-alist
- buf-type ediff-current-diff-overlay-alist))))
-
- (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
- (ediff-get-symbol-from-alist
- buf-type ediff-current-diff-overlay-alist)))
- (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
- (ediff-get-symbol-from-alist
- buf-type ediff-current-diff-overlay-alist))
- (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."
- (ediff-highlight-diff-in-one-buffer n 'A)
- (ediff-highlight-diff-in-one-buffer n 'B)
- (ediff-highlight-diff-in-one-buffer n 'C)
- (ediff-highlight-diff-in-one-buffer n 'Ancestor)
- )
-
-
-(defsubst ediff-unhighlight-diff ()
- "Remove overlays from buffers A, B, and C."
- (ediff-unhighlight-diff-in-one-buffer 'A)
- (ediff-unhighlight-diff-in-one-buffer 'B)
- (ediff-unhighlight-diff-in-one-buffer 'C)
- (ediff-unhighlight-diff-in-one-buffer 'Ancestor)
- )
-
-;; delete highlighting overlays, restore faces to their original form
-(defsubst ediff-unhighlight-diffs-totally ()
- (ediff-unhighlight-diffs-totally-in-one-buffer 'A)
- (ediff-unhighlight-diffs-totally-in-one-buffer 'B)
- (ediff-unhighlight-diffs-totally-in-one-buffer 'C)
- (ediff-unhighlight-diffs-totally-in-one-buffer 'Ancestor)
- )
-
;; arg is a record for a given diff in a difference vector
;; this record is itself a vector
@@ -1481,49 +1400,55 @@ This default should work without changes."
(ediff-clear-fine-differences-in-one-buffer n 'C)))
-(defsubst ediff-convert-fine-diffs-to-overlays (diff-list region-num)
- (ediff-set-fine-overlays-in-one-buffer 'A diff-list region-num)
- (ediff-set-fine-overlays-in-one-buffer 'B diff-list region-num)
- (if ediff-3way-job
- (ediff-set-fine-overlays-in-one-buffer 'C diff-list region-num)
- ))
-
(defsubst ediff-mouse-event-p (event)
- (if ediff-xemacs-p
- (button-event-p event)
- (string-match "mouse" (format "%S" (event-basic-type event)))
- ))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (button-event-p event) ; xemacs form
+ (string-match "mouse" (format "%S" (event-basic-type event))) ; emacs form
+ ))
(defsubst ediff-key-press-event-p (event)
- (if ediff-xemacs-p
- (key-press-event-p event)
- (or (char-or-string-p event) (symbolp event))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (key-press-event-p event) ; xemacs form
+ (or (char-or-string-p event) (symbolp event)) ; emacs form
+ ))
(defun ediff-event-point (event)
(cond ((ediff-mouse-event-p event)
- (if ediff-xemacs-p
- (event-point event)
- (posn-point (event-start event))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (event-point event) ; xemacs form
+ (posn-point (event-start event)) ; emacs form
+ )
+ )
((ediff-key-press-event-p event)
(point))
- (t (error))))
+ (t (error nil))))
(defun ediff-event-buffer (event)
(cond ((ediff-mouse-event-p event)
- (if ediff-xemacs-p
- (event-buffer event)
- (window-buffer (posn-window (event-start event)))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (event-buffer event) ; xemacs form
+ (window-buffer (posn-window (event-start event))) ; emacs form
+ )
+ )
((ediff-key-press-event-p event)
(current-buffer))
- (t (error))))
+ (t (error nil))))
+
+(defun ediff-event-key (event-or-key)
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (if (eventp event-or-key) (event-key event-or-key) event-or-key) ; xemacs
+ event-or-key ; emacs form
+ ))
(defsubst ediff-frame-iconified-p (frame)
(if (and (ediff-window-display-p) (frame-live-p frame))
- (if ediff-xemacs-p
- (frame-iconified-p frame)
- (eq (frame-visible-p frame) 'icon))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (frame-iconified-p frame) ; xemacs form
+ (eq (frame-visible-p frame) 'icon) ; emacs form
+ )
+ ))
(defsubst ediff-window-visible-p (wind)
;; under TTY, window-live-p also means window is visible
@@ -1533,9 +1458,10 @@ This default should work without changes."
(defsubst ediff-frame-char-width (frame)
- (if ediff-xemacs-p
- (/ (frame-pixel-width frame) (frame-width frame))
- (frame-char-width frame)))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (/ (frame-pixel-width frame) (frame-width frame)) ; xemacs
+ (frame-char-width frame) ; emacs
+ ))
(defun ediff-reset-mouse (&optional frame do-not-grab-mouse)
(or frame (setq frame (selected-frame)))
@@ -1580,23 +1506,29 @@ This default should work without changes."
(t nil))))
(defsubst ediff-frame-char-height (frame)
- (if ediff-xemacs-p
- (glyph-height ediff-H-glyph (selected-window frame))
- (frame-char-height frame)))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (glyph-height ediff-H-glyph (selected-window frame)) ; xemacs cse
+ (frame-char-height frame) ; emacs case
+ )
+ )
;; Some overlay functions
(defsubst ediff-overlay-start (overl)
(if (ediff-overlayp overl)
- (if ediff-emacs-p
- (overlay-start overl)
- (extent-start-position overl))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (extent-start-position overl) ; xemacs form
+ (overlay-start overl) ; emacs form
+ )
+ ))
(defsubst ediff-overlay-end (overl)
(if (ediff-overlayp overl)
- (if ediff-emacs-p
- (overlay-end overl)
- (extent-end-position overl))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (extent-end-position overl) ; xemacs form
+ (overlay-end overl) ; emacs form
+ )
+ ))
(defsubst ediff-empty-overlay-p (overl)
(= (ediff-overlay-start overl) (ediff-overlay-end overl)))
@@ -1604,16 +1536,18 @@ This default should work without changes."
;; like overlay-buffer in Emacs. In XEmacs, returns nil if the extent is
;; dead. Otherwise, works like extent-buffer
(defun ediff-overlay-buffer (overl)
- (if ediff-emacs-p
- (overlay-buffer overl)
- (and (extent-live-p overl) (extent-object overl))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (and (extent-live-p overl) (extent-object overl)) ; xemacs form
+ (overlay-buffer overl) ; emacs form
+ ))
;; like overlay-get in Emacs. In XEmacs, returns nil if the extent is
;; dead. Otherwise, like extent-property
(defun ediff-overlay-get (overl property)
- (if ediff-emacs-p
- (overlay-get overl property)
- (and (extent-live-p overl) (extent-property overl property))))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (and (extent-live-p overl) (extent-property overl property)) ; xemacs form
+ (overlay-get overl property) ; emacs form
+ ))
;; These two functions are here because XEmacs refuses to
@@ -1623,9 +1557,10 @@ This default should work without changes."
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))
+ (ediff-cond-compile-for-xemacs-or-emacs
+ (set-extent-endpoints overlay beg end) ; xemacs form
+ (move-overlay overlay beg end buffer) ; emacs form
+ )
;; buffer's dead
(if overlay
(ediff-delete-overlay overlay)))))
@@ -1634,46 +1569,25 @@ Checks if overlay's buffer exists before actually doing the move."
"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-cond-compile-for-xemacs-or-emacs
+ (set-extent-property overlay prop value) ; xemacs form
+ (overlay-put overlay prop value) ; emacs form
+ )
(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
-;; comparison job (merging jobs return t as well).
-(defun ediff-empty-diff-region-p (n buf-type)
- (if (eq buf-type 'C)
- (or (not ediff-3way-comparison-job)
- (= (ediff-get-diff-posn 'C 'beg n)
- (ediff-get-diff-posn 'C 'end n)))
- (= (ediff-get-diff-posn buf-type 'beg n)
- (ediff-get-diff-posn buf-type 'end n))))
-
-;; Test if diff region is white space only.
-;; If 2-way job and buf-type = C, then returns t.
-(defun ediff-whitespace-diff-region-p (n buf-type)
- (or (and (eq buf-type 'C) (not ediff-3way-job))
- (ediff-empty-diff-region-p n buf-type)
- (let ((beg (ediff-get-diff-posn buf-type 'beg n))
- (end (ediff-get-diff-posn buf-type 'end n)))
- (ediff-with-current-buffer (ediff-get-buffer buf-type)
- (save-excursion
- (goto-char beg)
- (skip-chars-forward ediff-whitespace)
- (>= (point) end))))))
-
;; temporarily uses DIR to abbreviate file name
;; if DIR is nil, use default-directory
(defun ediff-abbreviate-file-name (file &optional dir)
(cond ((stringp dir)
(let ((directory-abbrev-alist (list (cons dir ""))))
(abbreviate-file-name file)))
- (ediff-emacs-p (abbreviate-file-name file))
- (t ; XEmacs requires addl argument
- (abbreviate-file-name file t))))
+ (t
+ (ediff-cond-compile-for-xemacs-or-emacs
+ ;; XEmacs requires addl argument
+ (abbreviate-file-name file t) ; xemacs form
+ (abbreviate-file-name file)) ; emacs form
+ )
+ ))
;; Takes a directory and returns the parent directory.
;; does nothing to `/'. If the ARG is a regular file,
@@ -1740,13 +1654,6 @@ Unless optional argument INPLACE is non-nil, return a new string."
))
-(defsubst ediff-get-region-contents (n buf-type ctrl-buf &optional start end)
- (ediff-with-current-buffer
- (ediff-with-current-buffer ctrl-buf (ediff-get-buffer buf-type))
- (buffer-substring
- (or start (ediff-get-diff-posn buf-type 'beg n ctrl-buf))
- (or end (ediff-get-diff-posn buf-type 'end n ctrl-buf)))))
-
;; If ediff modified mode line, strip the modification
(defsubst ediff-strip-mode-line-format ()
(if (member (car mode-line-format) '(" A: " " B: " " C: " " Ancestor: "))