emacs-diffs
[Top][All Lists]
Advanced

[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 ----



reply via email to

[Prev in Thread] Current Thread [Next in Thread]