diff options
Diffstat (limited to 'lisp/ediff-util.el')
-rw-r--r-- | lisp/ediff-util.el | 102 |
1 files changed, 42 insertions, 60 deletions
diff --git a/lisp/ediff-util.el b/lisp/ediff-util.el index 14b1be963d7..2ed8f73a282 100644 --- a/lisp/ediff-util.el +++ b/lisp/ediff-util.el @@ -38,7 +38,6 @@ (defvar bottom-toolbar-visible-p) (defvar bottom-toolbar-height) (defvar mark-active) -(defvar ediff-emacs-p) (defvar ediff-after-quit-hook-internal nil) @@ -64,7 +63,7 @@ (or (featurep 'ediff) (load "ediff.el" nil nil 'nosuffix)) (or (featurep 'ediff-tbar) - ediff-emacs-p + (featurep 'emacs) (load "ediff-tbar.el" 'noerror nil 'nosuffix)) )) ;; end pacifier @@ -77,7 +76,7 @@ (require 'ediff-diff) (require 'ediff-merg) -(if ediff-xemacs-p +(if (featurep 'xemacs) (require 'ediff-tbar)) @@ -154,7 +153,7 @@ to invocation.") (suppress-keymap ediff-mode-map) (define-key ediff-mode-map - (if ediff-emacs-p [mouse-2] [button2]) 'ediff-help-for-quick-help) + (if (featurep 'emacs) [mouse-2] [button2]) 'ediff-help-for-quick-help) (define-key ediff-mode-map "\C-m" 'ediff-help-for-quick-help) (define-key ediff-mode-map "p" 'ediff-previous-difference) @@ -1141,7 +1140,7 @@ of the current buffer." (or (memq (vc-state file) '(edited needs-merge)) (stringp (vc-state file))) ;; XEmacs has no vc-state - (vc-locking-user file)) + (when (featurep 'xemacs) (vc-locking-user file))) ))) (defun ediff-file-checked-in-p (file) @@ -1153,7 +1152,7 @@ of the current buffer." (not (memq (vc-state file) '(edited needs-merge))) (not (stringp (vc-state file)))) ;; XEmacs has no vc-state - (not (vc-locking-user file))) + (when (featurep 'xemacs) (not (vc-locking-user file)))) )) (defun ediff-file-compressed-p (file) @@ -1275,7 +1274,7 @@ This is especially useful when comparing buffers side-by-side." (ediff-barf-if-not-control-buffer) (or (ediff-window-display-p) (error "%sEmacs is not running as a window application" - (if ediff-emacs-p "" "X"))) + (if (featurep 'emacs) "" "X"))) (ediff-recenter 'no-rehighlight) ; make sure buffs are displayed in windows (let ((ctl-buf ediff-control-buffer)) (setq ediff-wide-display-p (not ediff-wide-display-p)) @@ -1283,7 +1282,7 @@ This is especially useful when comparing buffers side-by-side." (ediff-with-current-buffer ctl-buf (modify-frame-parameters ediff-wide-display-frame ediff-wide-display-orig-parameters) - ;;(sit-for (if ediff-xemacs-p 0.4 0)) + ;;(sit-for (if (featurep 'xemacs) 0.4 0)) ;; restore control buf, since ctl window may have been deleted ;; during resizing (set-buffer ctl-buf) @@ -1291,7 +1290,7 @@ This is especially useful when comparing buffers side-by-side." ediff-window-B nil) ; force update of window config (ediff-recenter 'no-rehighlight)) (funcall ediff-make-wide-display-function) - ;;(sit-for (if ediff-xemacs-p 0.4 0)) + ;;(sit-for (if (featurep 'xemacs) 0.4 0)) (ediff-with-current-buffer ctl-buf (setq ediff-window-B nil) ; force update of window config (ediff-recenter 'no-rehighlight))))) @@ -1305,7 +1304,7 @@ which see." (let (window-setup-func) (or (ediff-window-display-p) (error "%sEmacs is not running as a window application" - (if ediff-emacs-p "" "X"))) + (if (featurep 'emacs) "" "X"))) (cond ((eq ediff-window-setup-function 'ediff-setup-windows-multiframe) (setq window-setup-func 'ediff-setup-windows-plain)) @@ -1335,7 +1334,7 @@ To change the default, set the variable `ediff-use-toolbar-p', which see." (progn (or (ediff-window-display-p) (error "%sEmacs is not running as a window application" - (if ediff-emacs-p "" "X"))) + (if (featurep 'emacs) "" "X"))) (if (ediff-use-toolbar-p) (ediff-kill-bottom-toolbar)) ;; do this only after killing the toolbar @@ -2529,7 +2528,7 @@ temporarily reverses the meaning of this variable." (cond ((ediff-good-frame-under-mouse)) (t warp-frame))) (if (and (ediff-window-display-p) (frame-live-p warp-frame) ediff-grab-mouse) - (set-mouse-position (if ediff-emacs-p + (set-mouse-position (if (featurep 'emacs) warp-frame (frame-selected-window warp-frame)) 2 1)) @@ -2544,11 +2543,11 @@ temporarily reverses the meaning of this variable." (buf-name "") frame obj-ok) (setq obj-ok - (if ediff-emacs-p + (if (featurep 'emacs) (frame-live-p frame-or-win) (window-live-p frame-or-win))) (if obj-ok - (setq frame (if ediff-emacs-p frame-or-win (window-frame frame-or-win)) + (setq frame (if (featurep 'emacs) frame-or-win (window-frame frame-or-win)) buf-name (buffer-name (window-buffer (frame-selected-window frame))))) (if (string-match "Minibuf" buf-name) @@ -3031,7 +3030,7 @@ Hit \\[ediff-recenter] to reset the windows afterward." (ediff-get-symbol-from-alist buf-type ediff-current-diff-overlay-alist)))) - (if ediff-xemacs-p + (if (featurep 'xemacs) (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 @@ -3611,11 +3610,11 @@ Ediff Control Panel to restore highlighting." (defun ediff-remove-flags-from-buffer (buffer overlay) (ediff-with-current-buffer buffer (let ((inhibit-read-only t)) - (if ediff-xemacs-p + (if (featurep 'xemacs) (ediff-overlay-put overlay 'begin-glyph nil) (ediff-overlay-put overlay 'before-string nil)) - (if ediff-xemacs-p + (if (featurep 'xemacs) (ediff-overlay-put overlay 'end-glyph nil) (ediff-overlay-put overlay 'after-string nil)) ))) @@ -3643,7 +3642,7 @@ Ediff Control Panel to restore highlighting." ediff-before-flag-bol ediff-before-flag-mol)))) ;; insert the flag itself - (if ediff-xemacs-p + (if (featurep 'xemacs) (ediff-overlay-put curr-overl 'begin-glyph flag) (ediff-overlay-put curr-overl 'before-string flag)) @@ -3659,7 +3658,7 @@ Ediff Control Panel to restore highlighting." ediff-after-flag-eol ediff-after-flag-mol)))) ;; insert the flag itself - (if ediff-xemacs-p + (if (featurep 'xemacs) (ediff-overlay-put curr-overl 'end-glyph flag) (ediff-overlay-put curr-overl 'after-string flag)) )) @@ -3786,10 +3785,10 @@ Ediff Control Panel to restore highlighting." ;; never detach (ediff-overlay-put - overl (if ediff-emacs-p 'evaporate 'detachable) nil) + overl (if (featurep 'emacs) 'evaporate 'detachable) nil) ;; make overlay open-ended ;; In emacs, it is made open ended at creation time - (if ediff-xemacs-p + (if (featurep 'xemacs) (progn (ediff-overlay-put overl 'start-open nil) (ediff-overlay-put overl 'end-open nil))) @@ -3802,9 +3801,8 @@ Ediff Control Panel to restore highlighting." (let ((overlay (ediff-get-symbol-from-alist type ediff-current-diff-overlay-alist)) (buffer (ediff-get-buffer type)) - (face (face-name - (ediff-get-symbol-from-alist - type ediff-current-diff-face-alist)))) + (face (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) @@ -4071,28 +4069,25 @@ Mail anyway? (y or n) ") ) )) -(cond ((fboundp 'nuke-selective-display) - ;; XEmacs has nuke-selective-display - (defalias 'ediff-nuke-selective-display 'nuke-selective-display)) - (t - (defun ediff-nuke-selective-display () - (save-excursion - (save-restriction - (widen) - (goto-char (point-min)) - (let ((mod-p (buffer-modified-p)) - buffer-read-only end) - (and (eq t selective-display) - (while (search-forward "\^M" nil t) - (end-of-line) - (setq end (point)) - (beginning-of-line) - (while (search-forward "\^M" end t) - (delete-char -1) - (insert "\^J")))) - (set-buffer-modified-p mod-p) - (setq selective-display nil))))) - )) +(defun ediff-nuke-selective-display () + (if (featurep 'xemacs) + (nuke-selective-display) + (save-excursion + (save-restriction + (widen) + (goto-char (point-min)) + (let ((mod-p (buffer-modified-p)) + buffer-read-only end) + (and (eq t selective-display) + (while (search-forward "\^M" nil t) + (end-of-line) + (setq end (point)) + (beginning-of-line) + (while (search-forward "\^M" end t) + (delete-char -1) + (insert "\^J")))) + (set-buffer-modified-p mod-p) + (setq selective-display nil)))))) ;; The next two are modified versions from emerge.el. @@ -4295,20 +4290,7 @@ Mail anyway? (y or n) ") (add-to-history history-var newelt) (set history-var (cons newelt (symbol-value history-var))))) -(if (fboundp 'copy-sequence) - (defalias 'ediff-copy-list 'copy-sequence) - (defun ediff-copy-list (list) - (if (consp list) - ;;;(let ((res nil)) - ;;; (while (consp list) (push (pop list) res)) - ;;; (prog1 (nreverse res) (setcdr res list))) - (let (res elt) - (while (consp list) - (setq elt (car list) - res (cons elt res) - list (cdr list))) - (nreverse res)) - (car list)))) +(defalias 'ediff-copy-list 'copy-sequence) ;; don't report error if version control package wasn't found |