[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/ediff-init.el
From: |
Michael Kifer |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/ediff-init.el |
Date: |
Mon, 07 Jan 2002 23:36:02 -0500 |
Index: emacs/lisp/ediff-init.el
diff -c emacs/lisp/ediff-init.el:1.53 emacs/lisp/ediff-init.el:1.54
*** emacs/lisp/ediff-init.el:1.53 Mon Dec 24 00:50:31 2001
--- emacs/lisp/ediff-init.el Mon Jan 7 23:36:01 2002
***************
*** 1,8 ****
;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
! ;; Copyright (C) 1994, 1995, 1996, 1997, 2000 Free Software Foundation, Inc.
! ;; Author: Michael Kifer <address@hidden>
;; This file is part of GNU Emacs.
--- 1,8 ----
;;; ediff-init.el --- Macros, variables, and defsubsts used by Ediff
! ;; Copyright (C) 1994, 95, 96, 97, 98, 99, 2000, 01, 02 Free Software
Foundation, Inc.
! ;; Author: Michael Kifer <address@hidden>
;; This file is part of GNU Emacs.
***************
*** 35,40 ****
--- 35,41 ----
(defvar ediff-whitespace)
(defvar ediff-multiframe)
(defvar ediff-use-toolbar-p)
+ (defvar mswindowsx-bitmap-file-path)
(and noninteractive
(eval-when-compile
***************
*** 46,51 ****
--- 47,61 ----
;; 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,61 ****
;; 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))))
;; in XEmacs: device-type is tty on tty and stream in batch.
(defun ediff-window-display-p ()
--- 63,72 ----
;; Are we running as a window application or on a TTY?
(defsubst ediff-device-type ()
! (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,78 ****
(ediff-emacs-p (memq (ediff-device-type) '(pc)))
(ediff-xemacs-p (memq (ediff-device-type) '(tty pc)))))
(defun ediff-has-toolbar-support-p ()
! (and ediff-xemacs-p
! (featurep 'toolbar)
! (console-on-window-system-p)))
(defun ediff-use-toolbar-p ()
(and (ediff-has-toolbar-support-p) ;Can it do it ?
--- 80,91 ----
(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 ()
! (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,113 ****
--- 121,130 ----
;; 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,746 ****
: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)))
;; Check the current version against the major and minor version numbers
;; using op: cur-vers op major.minor If emacs-major-version or
--- 748,765 ----
:group 'ediff)
! (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,812 ****
(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)))
(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))))
(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)))))
;; A-list of current-diff-overlay symbols associated with buf types
(defconst ediff-current-diff-overlay-alist
--- 791,833 ----
(defun ediff-color-display-p ()
(condition-case 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)
! (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)
! (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,843 ****
(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))
--- 844,849 ----
***************
*** 1194,1224 ****
(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)
! )
! ))
! ))))
(defvar ediff-toggle-read-only-function nil
--- 1200,1232 ----
(defun ediff-highest-priority (start end buffer)
(let ((pos (max 1 (1- start)))
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,1313 ****
(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)
--- 1314,1319 ----
***************
*** 1375,1467 ****
(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
--- 1381,1386 ----
***************
*** 1481,1529 ****
(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)))
! ))
(defsubst ediff-key-press-event-p (event)
! (if ediff-xemacs-p
! (key-press-event-p event)
! (or (char-or-string-p event) (symbolp event))))
(defun ediff-event-point (event)
(cond ((ediff-mouse-event-p event)
! (if ediff-xemacs-p
! (event-point event)
! (posn-point (event-start event))))
((ediff-key-press-event-p event)
(point))
! (t (error))))
(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-key-press-event-p event)
(current-buffer))
! (t (error))))
(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))))
(defsubst ediff-window-visible-p (wind)
;; under TTY, window-live-p also means window is visible
--- 1400,1454 ----
(ediff-clear-fine-differences-in-one-buffer n 'C)))
(defsubst ediff-mouse-event-p (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)
! (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)
! (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 nil))))
(defun ediff-event-buffer (event)
(cond ((ediff-mouse-event-p 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 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))
! (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,1541 ****
(defsubst ediff-frame-char-width (frame)
! (if ediff-xemacs-p
! (/ (frame-pixel-width frame) (frame-width frame))
! (frame-char-width frame)))
(defun ediff-reset-mouse (&optional frame do-not-grab-mouse)
(or frame (setq frame (selected-frame)))
--- 1458,1467 ----
(defsubst ediff-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,1602 ****
(t nil))))
(defsubst ediff-frame-char-height (frame)
! (if ediff-xemacs-p
! (glyph-height ediff-H-glyph (selected-window frame))
! (frame-char-height frame)))
;; Some overlay functions
(defsubst ediff-overlay-start (overl)
(if (ediff-overlayp overl)
! (if ediff-emacs-p
! (overlay-start overl)
! (extent-start-position overl))))
(defsubst ediff-overlay-end (overl)
(if (ediff-overlayp overl)
! (if ediff-emacs-p
! (overlay-end overl)
! (extent-end-position overl))))
(defsubst ediff-empty-overlay-p (overl)
(= (ediff-overlay-start overl) (ediff-overlay-end overl)))
--- 1506,1534 ----
(t nil))))
(defsubst ediff-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)
! (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)
! (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,1619 ****
;; 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))))
;; 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))))
;; These two functions are here because XEmacs refuses to
--- 1536,1553 ----
;; like overlay-buffer in Emacs. In XEmacs, returns nil if the extent is
;; dead. Otherwise, works like extent-buffer
(defun ediff-overlay-buffer (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)
! (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,1631 ****
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)))))
--- 1557,1566 ----
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)
! (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,1679 ****
"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
- ;; 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))))
;; Takes a directory and returns the parent directory.
;; does nothing to `/'. If the ARG is a regular file,
--- 1569,1593 ----
"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))
! (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)))
;; 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)))
! (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,
***************
*** 1739,1751 ****
(subst-char-in-string ?- ?\ (substring (symbol-name jobname) 6))))
))
-
- (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 ()
--- 1653,1658 ----
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/ediff-init.el,
Michael Kifer <=