diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2019-10-05 16:48:44 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2019-10-05 16:48:51 +0200 |
commit | 3c1635ebf2038d43c3400908e7e070d54192801a (patch) | |
tree | 75c844c476392525c142824ba511aa0d700542ef /lisp/vc | |
parent | 9cf8454463ab0249c3b680f892507743b3be972e (diff) | |
download | emacs-3c1635ebf2038d43c3400908e7e070d54192801a.tar.gz |
Remove most of the XEmacs compat code from ediff*.el
* lisp/vc/ediff-diff.el (ediff-word-1): Remove XEmacs compat code
and declare compatibility functions for obsolete. Adjust all callers.
* lisp/vc/ediff-help.el (ediff-set-help-overlays):
* lisp/vc/ediff-hook.el:
(menu-bar-ediff-misc-menu, menu-bar-ediff-merge-menu)
(menu-bar-ediff-menu, menu-bar-ediff-merge-menu)
(menu-bar-epatch-menu, menu-bar-ediff-misc-menu):
* lisp/vc/ediff-init.el (ediff-device-type)
(ediff-window-display-p, ediff-has-face-support-p)
(ediff-has-toolbar-support-p, ediff-has-gutter-support-p)
(ediff-BAD-INFO, ediff-coding-system-for-write)
(ediff-read-event, ediff-overlayp, ediff-make-overlay)
(ediff-delete-overlay, ediff-color-display-p)
(ediff-display-pixel-width, ediff-display-pixel-height)
(ediff-region-help-echo, ediff-set-face-pixmap)
(ediff-paint-background-regions-in-one-buffer)
(ediff-clear-fine-diff-vector, ediff-mouse-event-p)
(ediff-key-press-event-p, ediff-event-point, )
(ediff-event-buffer, ediff-event-key, ediff-last-command-char)
(ediff-frame-iconified-p, ediff-frame-char-width)
(ediff-reset-mouse, ediff-frame-char-height)
(ediff-overlay-start, ediff-overlay-end, ediff-overlay-buffer)
(ediff-overlay-get, ediff-move-overlay, ediff-overlay-put)
(ediff-abbreviate-file-name):
* lisp/vc/ediff-mult.el (ediff-next-meta-item)
(ediff-previous-meta-item)
(ediff-replace-session-activity-marker-in-meta-buffer)
(ediff-replace-session-status-in-meta-buffer)
(ediff-redraw-directory-group-buffer)
(ediff-update-markers-in-dir-meta-buffer)
(ediff-update-session-marker-in-dir-meta-buffer)
(ediff-redraw-registry-buffer, ediff-set-meta-overlay)
(ediff-update-meta-buffer, ediff-get-meta-info)
(ediff-get-meta-overlay-at-pos, )
(ediff-get-session-number-at-pos, )
(ediff-next-meta-overlay-start)
(ediff-previous-meta-overlay-start, )
(ediff-meta-mark-equal-files):
* lisp/vc/ediff-util.el:
(ediff-setup, ediff-setup-control-buffer, ediff-recenter)
(ediff-recenter-one-window, ediff-toggle-read-only)
(ediff-file-checked-out-p, ediff-file-checked-in-p)
(ediff-toggle-wide-display, ediff-toggle-multiframe)
(ediff-toggle-use-toolbar, ediff-kill-bottom-toolbar)
(ediff-visible-region, ediff-scroll-vertically)
(ediff-scroll-horizontally, ediff-jump-to-difference-at-point)
(ediff-diff-to-diff, ediff-restore-diff)
(ediff-toggle-regexp-match, ediff-really-quit)
(ediff-cleanup-mess, ediff-highlight-diff-in-one-buffer)
(ediff-unhighlight-diffs-totally-in-one-buffer)
(ediff-save-buffer, ediff-make-cloned-buffer)
(ediff-make-indirect-buffer, ediff-remove-flags-from-buffer)
(ediff-place-flags-in-buffer1, ediff-get-diff-posn)
(ediff-clear-diff-vector, ediff-make-bullet-proof-overlay)
(ediff-submit-report, ediff-deactivate-mark)
(ediff-activate-mark, ediff-profile, ediff-print-diff-vector):
* lisp/vc/ediff-wind.el (ediff-control-frame-parameters)
(ediff-get-window-by-clicking, ediff-select-lowest-window)
(ediff-setup-windows-plain-merge)
(ediff-setup-windows-plain-compare, ediff-setup-control-frame)
(ediff-destroy-control-frame, ediff-make-frame-position)
(ediff-make-wide-display, ediff-get-visible-buffer-window):
* lisp/vc/ediff.el (ediff-version, ediff-documentation):
Diffstat (limited to 'lisp/vc')
-rw-r--r-- | lisp/vc/ediff-diff.el | 3 | ||||
-rw-r--r-- | lisp/vc/ediff-help.el | 2 | ||||
-rw-r--r-- | lisp/vc/ediff-hook.el | 351 | ||||
-rw-r--r-- | lisp/vc/ediff-init.el | 212 | ||||
-rw-r--r-- | lisp/vc/ediff-mult.el | 157 | ||||
-rw-r--r-- | lisp/vc/ediff-util.el | 197 | ||||
-rw-r--r-- | lisp/vc/ediff-wind.el | 117 | ||||
-rw-r--r-- | lisp/vc/ediff.el | 6 |
8 files changed, 346 insertions, 699 deletions
diff --git a/lisp/vc/ediff-diff.el b/lisp/vc/ediff-diff.el index 0c8c89610fb..dded160c577 100644 --- a/lisp/vc/ediff-diff.el +++ b/lisp/vc/ediff-diff.el @@ -1231,8 +1231,7 @@ Used for splitting difference regions into individual words.") These characters are ignored when differing regions are split into words.") (make-variable-buffer-local 'ediff-whitespace) -(defvar ediff-word-1 - (if (featurep 'xemacs) "a-zA-Z---_" "-[:word:]_") +(defvar ediff-word-1 "-[:word:]_" "Characters that constitute words of type 1. More precisely, [ediff-word-1] is a regexp that matches type 1 words. See `ediff-forward-word' for more details.") diff --git a/lisp/vc/ediff-help.el b/lisp/vc/ediff-help.el index 0b127564743..f291d40bc24 100644 --- a/lisp/vc/ediff-help.el +++ b/lisp/vc/ediff-help.el @@ -166,7 +166,7 @@ the value of this variable and the variables `ediff-help-message-*' in (setq beg (match-beginning 1) end (match-end 0) cmd (buffer-substring (match-beginning 1) (match-end 1))) - (setq overl (ediff-make-overlay beg end)) + (setq overl (make-overlay beg end)) (ediff-overlay-put overl 'mouse-face 'highlight) (ediff-overlay-put overl 'ediff-help-info cmd)))) diff --git a/lisp/vc/ediff-hook.el b/lisp/vc/ediff-hook.el index 7a04249fc85..2aa03cc930b 100644 --- a/lisp/vc/ediff-hook.el +++ b/lisp/vc/ediff-hook.el @@ -44,222 +44,141 @@ ;; allow menus to be set up without ediff-wind.el being loaded -;; This autoload is useless in Emacs because ediff-hook.el is dumped with -;; emacs, but it is needed in XEmacs -;;;###autoload -(if (featurep 'xemacs) - (progn - (defun ediff-xemacs-init-menus () - (when (featurep 'menubar) - (add-submenu - '("Tools") ediff-menu "OO-Browser...") - (add-submenu - '("Tools") ediff-merge-menu "OO-Browser...") - (add-submenu - '("Tools") epatch-menu "OO-Browser...") - (add-submenu - '("Tools") ediff-misc-menu "OO-Browser...") - (add-menu-button - '("Tools") "-------" "OO-Browser...") - )) - (defvar ediff-menu - '("Compare" - ["Two Files..." ediff-files t] - ["Two Buffers..." ediff-buffers t] - ["Three Files..." ediff-files3 t] - ["Three Buffers..." ediff-buffers3 t] - "---" - ["Two Directories..." ediff-directories t] - ["Three Directories..." ediff-directories3 t] - "---" - ["File with Revision..." ediff-revision t] - ["Directory Revisions..." ediff-directory-revisions t] - "---" - ["Windows Word-by-word..." ediff-windows-wordwise t] - ["Windows Line-by-line..." ediff-windows-linewise t] - "---" - ["Regions Word-by-word..." ediff-regions-wordwise t] - ["Regions Line-by-line..." ediff-regions-linewise t] - )) - (defvar ediff-merge-menu - '("Merge" - ["Files..." ediff-merge-files t] - ["Files with Ancestor..." ediff-merge-files-with-ancestor t] - ["Buffers..." ediff-merge-buffers t] - ["Buffers with Ancestor..." - ediff-merge-buffers-with-ancestor t] - "---" - ["Directories..." ediff-merge-directories t] - ["Directories with Ancestor..." - ediff-merge-directories-with-ancestor t] - "---" - ["Revisions..." ediff-merge-revisions t] - ["Revisions with Ancestor..." - ediff-merge-revisions-with-ancestor t] - ["Directory Revisions..." ediff-merge-directory-revisions t] - ["Directory Revisions with Ancestor..." - ediff-merge-directory-revisions-with-ancestor t] - )) - (defvar epatch-menu - '("Apply Patch" - ["To a file..." ediff-patch-file t] - ["To a buffer..." ediff-patch-buffer t] - )) - (defvar ediff-misc-menu - '("Ediff Miscellanea" - ["Ediff Manual" ediff-documentation t] - ["Customize Ediff" ediff-customize t] - ["List Ediff Sessions" ediff-show-registry t] - ["Use separate frame for Ediff control buffer" - ediff-toggle-multiframe - :style toggle - :selected (eq (bound-and-true-p ediff-window-setup-function) - #'ediff-setup-windows-multiframe)] - ["Use a toolbar with Ediff control buffer" - ediff-toggle-use-toolbar - :style toggle - :selected (if (featurep 'ediff-tbar) - (ediff-use-toolbar-p))])) - - ;; put these menus before Object-Oriented-Browser in Tools menu - (if (and (featurep 'menubar) (not (featurep 'infodock)) - (not (featurep 'ediff-hook))) - (ediff-xemacs-init-menus))) - ;; Emacs - ;; initialize menu bar keymaps - (defvar menu-bar-ediff-misc-menu - (make-sparse-keymap "Ediff Miscellanea")) - (fset 'menu-bar-ediff-misc-menu - menu-bar-ediff-misc-menu) - (defvar menu-bar-epatch-menu (make-sparse-keymap "Apply Patch")) - (fset 'menu-bar-epatch-menu menu-bar-epatch-menu) - (defvar menu-bar-ediff-merge-menu (make-sparse-keymap "Merge")) - (fset 'menu-bar-ediff-merge-menu - menu-bar-ediff-merge-menu) - (defvar menu-bar-ediff-menu (make-sparse-keymap "Compare")) - (fset 'menu-bar-ediff-menu menu-bar-ediff-menu) - - ;; define ediff compare menu - (define-key menu-bar-ediff-menu [ediff-misc] - `(menu-item ,(purecopy "Ediff Miscellanea") menu-bar-ediff-misc-menu)) - (define-key menu-bar-ediff-menu [separator-ediff-misc] menu-bar-separator) - (define-key menu-bar-ediff-menu [window] - `(menu-item ,(purecopy "This Window and Next Window") compare-windows - :help ,(purecopy "Compare the current window and the next window"))) - (define-key menu-bar-ediff-menu [ediff-windows-linewise] - `(menu-item ,(purecopy "Windows Line-by-line...") ediff-windows-linewise - :help ,(purecopy "Compare windows line-wise"))) - (define-key menu-bar-ediff-menu [ediff-windows-wordwise] - `(menu-item ,(purecopy "Windows Word-by-word...") ediff-windows-wordwise - :help ,(purecopy "Compare windows word-wise"))) - (define-key menu-bar-ediff-menu [separator-ediff-windows] menu-bar-separator) - (define-key menu-bar-ediff-menu [ediff-regions-linewise] - `(menu-item ,(purecopy "Regions Line-by-line...") ediff-regions-linewise - :help ,(purecopy "Compare regions line-wise"))) - (define-key menu-bar-ediff-menu [ediff-regions-wordwise] - `(menu-item ,(purecopy "Regions Word-by-word...") ediff-regions-wordwise - :help ,(purecopy "Compare regions word-wise"))) - (define-key menu-bar-ediff-menu [separator-ediff-regions] menu-bar-separator) - (define-key menu-bar-ediff-menu [ediff-dir-revision] - `(menu-item ,(purecopy "Directory Revisions...") ediff-directory-revisions - :help ,(purecopy "Compare directory files with their older versions"))) - (define-key menu-bar-ediff-menu [ediff-revision] - `(menu-item ,(purecopy "File with Revision...") ediff-revision - :help ,(purecopy "Compare file with its older versions"))) - (define-key menu-bar-ediff-menu [separator-ediff-directories] menu-bar-separator) - (define-key menu-bar-ediff-menu [ediff-directories3] - `(menu-item ,(purecopy "Three Directories...") ediff-directories3 - :help ,(purecopy "Compare files common to three directories simultaneously"))) - (define-key menu-bar-ediff-menu [ediff-directories] - `(menu-item ,(purecopy "Two Directories...") ediff-directories - :help ,(purecopy "Compare files common to two directories simultaneously"))) - (define-key menu-bar-ediff-menu [separator-ediff-files] menu-bar-separator) - (define-key menu-bar-ediff-menu [ediff-buffers3] - `(menu-item ,(purecopy "Three Buffers...") ediff-buffers3 - :help ,(purecopy "Compare three buffers simultaneously"))) - (define-key menu-bar-ediff-menu [ediff-files3] - `(menu-item ,(purecopy "Three Files...") ediff-files3 - :help ,(purecopy "Compare three files simultaneously"))) - (define-key menu-bar-ediff-menu [ediff-buffers] - `(menu-item ,(purecopy "Two Buffers...") ediff-buffers - :help ,(purecopy "Compare two buffers simultaneously"))) - (define-key menu-bar-ediff-menu [ediff-files] - `(menu-item ,(purecopy "Two Files...") ediff-files - :help ,(purecopy "Compare two files simultaneously"))) - - ;; define ediff merge menu - (define-key - menu-bar-ediff-merge-menu [ediff-merge-dir-revisions-with-ancestor] - `(menu-item ,(purecopy "Directory Revisions with Ancestor...") - ediff-merge-directory-revisions-with-ancestor - :help ,(purecopy "Merge versions of the files in the same directory by comparing the files with common ancestors"))) - (define-key - menu-bar-ediff-merge-menu [ediff-merge-dir-revisions] - `(menu-item ,(purecopy "Directory Revisions...") ediff-merge-directory-revisions - :help ,(purecopy "Merge versions of the files in the same directory (without using ancestor information)"))) - (define-key - menu-bar-ediff-merge-menu [ediff-merge-revisions-with-ancestor] - `(menu-item ,(purecopy "Revisions with Ancestor...") - ediff-merge-revisions-with-ancestor - :help ,(purecopy "Merge versions of the same file by comparing them with a common ancestor"))) - (define-key menu-bar-ediff-merge-menu [ediff-merge-revisions] - `(menu-item ,(purecopy "Revisions...") ediff-merge-revisions - :help ,(purecopy "Merge versions of the same file (without using ancestor information)"))) - (define-key menu-bar-ediff-merge-menu [separator-ediff-merge] menu-bar-separator) - (define-key - menu-bar-ediff-merge-menu [ediff-merge-directories-with-ancestor] - `(menu-item ,(purecopy "Directories with Ancestor...") - ediff-merge-directories-with-ancestor - :help ,(purecopy "Merge files common to a pair of directories by comparing the files with common ancestors"))) - (define-key menu-bar-ediff-merge-menu [ediff-merge-directories] - `(menu-item ,(purecopy "Directories...") ediff-merge-directories - :help ,(purecopy "Merge files common to a pair of directories"))) - (define-key - menu-bar-ediff-merge-menu [separator-ediff-merge-dirs] menu-bar-separator) - (define-key - menu-bar-ediff-merge-menu [ediff-merge-buffers-with-ancestor] - `(menu-item ,(purecopy "Buffers with Ancestor...") ediff-merge-buffers-with-ancestor - :help ,(purecopy "Merge buffers by comparing their contents with a common ancestor"))) - (define-key menu-bar-ediff-merge-menu [ediff-merge-buffers] - `(menu-item ,(purecopy "Buffers...") ediff-merge-buffers - :help ,(purecopy "Merge buffers (without using ancestor information)"))) - (define-key menu-bar-ediff-merge-menu [ediff-merge-files-with-ancestor] - `(menu-item ,(purecopy "Files with Ancestor...") ediff-merge-files-with-ancestor - :help ,(purecopy "Merge files by comparing them with a common ancestor"))) - (define-key menu-bar-ediff-merge-menu [ediff-merge-files] - `(menu-item ,(purecopy "Files...") ediff-merge-files - :help ,(purecopy "Merge files (without using ancestor information)"))) - - ;; define epatch menu - (define-key menu-bar-epatch-menu [ediff-patch-buffer] - `(menu-item ,(purecopy "To a Buffer...") ediff-patch-buffer - :help ,(purecopy "Apply a patch to the contents of a buffer"))) - (define-key menu-bar-epatch-menu [ediff-patch-file] - `(menu-item ,(purecopy "To a File...") ediff-patch-file - :help ,(purecopy "Apply a patch to a file"))) - - ;; define ediff miscellanea - (define-key menu-bar-ediff-misc-menu [emultiframe] - `(menu-item ,(purecopy "Use separate control buffer frame") - ediff-toggle-multiframe - :help ,(purecopy "Switch between the single-frame presentation mode and the multi-frame mode") - :button (:toggle . (eq (bound-and-true-p ediff-window-setup-function) - #'ediff-setup-windows-multiframe)))) - ;; FIXME: Port XEmacs's toolbar support! - ;; ["Use a toolbar with Ediff control buffer" - ;; ediff-toggle-use-toolbar - ;; :style toggle - ;; :selected (if (featurep 'ediff-tbar) - ;; (ediff-use-toolbar-p))] - (define-key menu-bar-ediff-misc-menu [eregistry] - `(menu-item ,(purecopy "List Ediff Sessions") ediff-show-registry - :help ,(purecopy "List all active Ediff sessions; it is a convenient way to find and resume such a session"))) - (define-key menu-bar-ediff-misc-menu [ediff-cust] - `(menu-item ,(purecopy "Customize Ediff") ediff-customize - :help ,(purecopy "Change some of the parameters that govern the behavior of Ediff"))) - (define-key menu-bar-ediff-misc-menu [ediff-doc] - `(menu-item ,(purecopy "Ediff Manual") ediff-documentation - :help ,(purecopy "Bring up the Ediff manual")))) +;; Emacs +;; initialize menu bar keymaps +(defvar menu-bar-ediff-misc-menu + (make-sparse-keymap "Ediff Miscellanea")) +(fset 'menu-bar-ediff-misc-menu + menu-bar-ediff-misc-menu) +(defvar menu-bar-epatch-menu (make-sparse-keymap "Apply Patch")) +(fset 'menu-bar-epatch-menu menu-bar-epatch-menu) +(defvar menu-bar-ediff-merge-menu (make-sparse-keymap "Merge")) +(fset 'menu-bar-ediff-merge-menu + menu-bar-ediff-merge-menu) +(defvar menu-bar-ediff-menu (make-sparse-keymap "Compare")) +(fset 'menu-bar-ediff-menu menu-bar-ediff-menu) + +;; define ediff compare menu +(define-key menu-bar-ediff-menu [ediff-misc] + `(menu-item ,(purecopy "Ediff Miscellanea") menu-bar-ediff-misc-menu)) +(define-key menu-bar-ediff-menu [separator-ediff-misc] menu-bar-separator) +(define-key menu-bar-ediff-menu [window] + `(menu-item ,(purecopy "This Window and Next Window") compare-windows + :help ,(purecopy "Compare the current window and the next window"))) +(define-key menu-bar-ediff-menu [ediff-windows-linewise] + `(menu-item ,(purecopy "Windows Line-by-line...") ediff-windows-linewise + :help ,(purecopy "Compare windows line-wise"))) +(define-key menu-bar-ediff-menu [ediff-windows-wordwise] + `(menu-item ,(purecopy "Windows Word-by-word...") ediff-windows-wordwise + :help ,(purecopy "Compare windows word-wise"))) +(define-key menu-bar-ediff-menu [separator-ediff-windows] menu-bar-separator) +(define-key menu-bar-ediff-menu [ediff-regions-linewise] + `(menu-item ,(purecopy "Regions Line-by-line...") ediff-regions-linewise + :help ,(purecopy "Compare regions line-wise"))) +(define-key menu-bar-ediff-menu [ediff-regions-wordwise] + `(menu-item ,(purecopy "Regions Word-by-word...") ediff-regions-wordwise + :help ,(purecopy "Compare regions word-wise"))) +(define-key menu-bar-ediff-menu [separator-ediff-regions] menu-bar-separator) +(define-key menu-bar-ediff-menu [ediff-dir-revision] + `(menu-item ,(purecopy "Directory Revisions...") ediff-directory-revisions + :help ,(purecopy "Compare directory files with their older versions"))) +(define-key menu-bar-ediff-menu [ediff-revision] + `(menu-item ,(purecopy "File with Revision...") ediff-revision + :help ,(purecopy "Compare file with its older versions"))) +(define-key menu-bar-ediff-menu [separator-ediff-directories] menu-bar-separator) +(define-key menu-bar-ediff-menu [ediff-directories3] + `(menu-item ,(purecopy "Three Directories...") ediff-directories3 + :help ,(purecopy "Compare files common to three directories simultaneously"))) +(define-key menu-bar-ediff-menu [ediff-directories] + `(menu-item ,(purecopy "Two Directories...") ediff-directories + :help ,(purecopy "Compare files common to two directories simultaneously"))) +(define-key menu-bar-ediff-menu [separator-ediff-files] menu-bar-separator) +(define-key menu-bar-ediff-menu [ediff-buffers3] + `(menu-item ,(purecopy "Three Buffers...") ediff-buffers3 + :help ,(purecopy "Compare three buffers simultaneously"))) +(define-key menu-bar-ediff-menu [ediff-files3] + `(menu-item ,(purecopy "Three Files...") ediff-files3 + :help ,(purecopy "Compare three files simultaneously"))) +(define-key menu-bar-ediff-menu [ediff-buffers] + `(menu-item ,(purecopy "Two Buffers...") ediff-buffers + :help ,(purecopy "Compare two buffers simultaneously"))) +(define-key menu-bar-ediff-menu [ediff-files] + `(menu-item ,(purecopy "Two Files...") ediff-files + :help ,(purecopy "Compare two files simultaneously"))) + +;; define ediff merge menu +(define-key + menu-bar-ediff-merge-menu [ediff-merge-dir-revisions-with-ancestor] + `(menu-item ,(purecopy "Directory Revisions with Ancestor...") + ediff-merge-directory-revisions-with-ancestor + :help ,(purecopy "Merge versions of the files in the same directory by comparing the files with common ancestors"))) +(define-key + menu-bar-ediff-merge-menu [ediff-merge-dir-revisions] + `(menu-item ,(purecopy "Directory Revisions...") ediff-merge-directory-revisions + :help ,(purecopy "Merge versions of the files in the same directory (without using ancestor information)"))) +(define-key + menu-bar-ediff-merge-menu [ediff-merge-revisions-with-ancestor] + `(menu-item ,(purecopy "Revisions with Ancestor...") + ediff-merge-revisions-with-ancestor + :help ,(purecopy "Merge versions of the same file by comparing them with a common ancestor"))) +(define-key menu-bar-ediff-merge-menu [ediff-merge-revisions] + `(menu-item ,(purecopy "Revisions...") ediff-merge-revisions + :help ,(purecopy "Merge versions of the same file (without using ancestor information)"))) +(define-key menu-bar-ediff-merge-menu [separator-ediff-merge] menu-bar-separator) +(define-key + menu-bar-ediff-merge-menu [ediff-merge-directories-with-ancestor] + `(menu-item ,(purecopy "Directories with Ancestor...") + ediff-merge-directories-with-ancestor + :help ,(purecopy "Merge files common to a pair of directories by comparing the files with common ancestors"))) +(define-key menu-bar-ediff-merge-menu [ediff-merge-directories] + `(menu-item ,(purecopy "Directories...") ediff-merge-directories + :help ,(purecopy "Merge files common to a pair of directories"))) +(define-key + menu-bar-ediff-merge-menu [separator-ediff-merge-dirs] menu-bar-separator) +(define-key + menu-bar-ediff-merge-menu [ediff-merge-buffers-with-ancestor] + `(menu-item ,(purecopy "Buffers with Ancestor...") ediff-merge-buffers-with-ancestor + :help ,(purecopy "Merge buffers by comparing their contents with a common ancestor"))) +(define-key menu-bar-ediff-merge-menu [ediff-merge-buffers] + `(menu-item ,(purecopy "Buffers...") ediff-merge-buffers + :help ,(purecopy "Merge buffers (without using ancestor information)"))) +(define-key menu-bar-ediff-merge-menu [ediff-merge-files-with-ancestor] + `(menu-item ,(purecopy "Files with Ancestor...") ediff-merge-files-with-ancestor + :help ,(purecopy "Merge files by comparing them with a common ancestor"))) +(define-key menu-bar-ediff-merge-menu [ediff-merge-files] + `(menu-item ,(purecopy "Files...") ediff-merge-files + :help ,(purecopy "Merge files (without using ancestor information)"))) + +;; define epatch menu +(define-key menu-bar-epatch-menu [ediff-patch-buffer] + `(menu-item ,(purecopy "To a Buffer...") ediff-patch-buffer + :help ,(purecopy "Apply a patch to the contents of a buffer"))) +(define-key menu-bar-epatch-menu [ediff-patch-file] + `(menu-item ,(purecopy "To a File...") ediff-patch-file + :help ,(purecopy "Apply a patch to a file"))) + +;; define ediff miscellanea +(define-key menu-bar-ediff-misc-menu [emultiframe] + `(menu-item ,(purecopy "Use separate control buffer frame") + ediff-toggle-multiframe + :help ,(purecopy "Switch between the single-frame presentation mode and the multi-frame mode") + :button (:toggle . (eq (bound-and-true-p ediff-window-setup-function) + #'ediff-setup-windows-multiframe)))) +;; FIXME: Port XEmacs's toolbar support! +;; ["Use a toolbar with Ediff control buffer" +;; ediff-toggle-use-toolbar +;; :style toggle +;; :selected (if (featurep 'ediff-tbar) +;; (ediff-use-toolbar-p))] +(define-key menu-bar-ediff-misc-menu [eregistry] + `(menu-item ,(purecopy "List Ediff Sessions") ediff-show-registry + :help ,(purecopy "List all active Ediff sessions; it is a convenient way to find and resume such a session"))) +(define-key menu-bar-ediff-misc-menu [ediff-cust] + `(menu-item ,(purecopy "Customize Ediff") ediff-customize + :help ,(purecopy "Change some of the parameters that govern the behavior of Ediff"))) +(define-key menu-bar-ediff-misc-menu [ediff-doc] + `(menu-item ,(purecopy "Ediff Manual") ediff-documentation + :help ,(purecopy "Bring up the Ediff manual"))) (provide 'ediff-hook) ;;; ediff-hook.el ends here diff --git a/lisp/vc/ediff-init.el b/lisp/vc/ediff-init.el index c007d934483..9e4d08d70c8 100644 --- a/lisp/vc/ediff-init.el +++ b/lisp/vc/ediff-init.el @@ -45,30 +45,29 @@ that Ediff doesn't know about.") ;; Are we running as a window application or on a TTY? (defsubst ediff-device-type () - (if (featurep 'xemacs) - (device-type (selected-device)) - window-system)) + (declare (obsolete nil "27.1")) + window-system) ;; in XEmacs: device-type is tty on tty and stream in batch. (defun ediff-window-display-p () - (and (ediff-device-type) (not (memq (ediff-device-type) '(tty pc stream))))) + (and window-system + (not (memq window-system '(tty pc stream))))) ;; test if supports faces (defun ediff-has-face-support-p () (cond ((ediff-window-display-p)) (ediff-force-faces) - ((ediff-color-display-p)) - (t (memq (ediff-device-type) '(pc))))) + ((display-color-p)) + (t (memq window-system '(pc))))) ;; toolbar support for emacs hasn't been implemented in ediff (defun ediff-has-toolbar-support-p () - (if (featurep 'xemacs) - (if (featurep 'toolbar) (console-on-window-system-p)))) + nil) (defun ediff-has-gutter-support-p () - (if (featurep 'xemacs) - (if (featurep 'gutter) (console-on-window-system-p)))) + (declare (obsolete nil "27.1")) + nil) (defun ediff-use-toolbar-p () (and (ediff-has-toolbar-support-p) ;Can it do it ? @@ -493,10 +492,9 @@ set local variables that determine how the display looks like." "%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. +*** of Emacs, does not seem to be properly installed. *** -*** Please contact your system administrator. " - (if (featurep 'xemacs) "X" ""))) +*** Please contact your system administrator. ")) ;; Selective browsing @@ -553,24 +551,24 @@ See the documentation string of `ediff-focus-on-regexp-matches' for details.") ;; Highlighting -(defcustom ediff-before-flag-bol (if (featurep 'xemacs) (make-glyph "->>") "->>") +(defcustom ediff-before-flag-bol "->>" "Flag placed before a highlighted block of differences, if block starts at beginning of a line." :type 'string :tag "Region before-flag at beginning of line" :group 'ediff) -(defcustom ediff-after-flag-eol (if (featurep 'xemacs) (make-glyph "<<-") "<<-") +(defcustom ediff-after-flag-eol "<<-" "Flag placed after a highlighted block of differences, if block ends at end of a line." :type 'string :tag "Region after-flag at end of line" :group 'ediff) -(defcustom ediff-before-flag-mol (if (featurep 'xemacs) (make-glyph "->>") "->>") +(defcustom ediff-before-flag-mol "->>" "Flag placed before a highlighted block of differences, if block starts in mid-line." :type 'string :tag "Region before-flag in the middle of line" :group 'ediff) -(defcustom ediff-after-flag-mol (if (featurep 'xemacs) (make-glyph "<<-") "<<-") +(defcustom ediff-after-flag-mol "<<-" "Flag placed after a highlighted block of differences, if block ends in mid-line." :type 'string :tag "Region after-flag in the middle of line" @@ -717,33 +715,22 @@ work." :type 'symbol :group 'ediff) -(defcustom ediff-coding-system-for-write (if (featurep 'xemacs) - 'escape-quoted - 'emacs-internal) +(defcustom ediff-coding-system-for-write 'emacs-internal "The coding system for write to use when writing out difference regions to temp files in buffer jobs and when Ediff needs to find fine differences." :type 'symbol :group 'ediff) -(defalias 'ediff-read-event - (if (featurep 'xemacs) 'next-command-event 'read-event)) +(define-obsolete-function-alias 'ediff-read-event #'read-event "27.1") -(defalias 'ediff-overlayp - (if (featurep 'xemacs) 'extentp 'overlayp)) +(define-obsolete-function-alias 'ediff-overlayp #'overlayp "27.1") -(defalias 'ediff-make-overlay - (if (featurep 'xemacs) 'make-extent 'make-overlay)) +(define-obsolete-function-alias 'ediff-make-overlay #'make-overlay "27.1") -(defalias 'ediff-delete-overlay - (if (featurep 'xemacs) 'delete-extent 'delete-overlay)) +(define-obsolete-function-alias 'ediff-delete-overlay #'delete-overlay "27.1") -(defun ediff-color-display-p () - (condition-case nil - (if (featurep 'xemacs) - (eq (device-class (selected-device)) 'color) ; xemacs form - (display-color-p)) ; emacs form - (error nil))) +(define-obsolete-function-alias 'ediff-color-display-p #'display-color-p "27.1") ;; A var local to each control panel buffer. Indicates highlighting style @@ -754,12 +741,10 @@ to temp files in buffer jobs and when Ediff needs to find fine differences." "") -(if (featurep 'xemacs) - (progn - (defalias 'ediff-display-pixel-width 'device-pixel-width) - (defalias 'ediff-display-pixel-height 'device-pixel-height)) - (defalias 'ediff-display-pixel-width 'display-pixel-width) - (defalias 'ediff-display-pixel-height 'display-pixel-height)) +(define-obsolete-function-alias 'ediff-display-pixel-width + #'display-pixel-width "27.1") +(define-obsolete-function-alias 'ediff-display-pixel-height + #'display-pixel-height "27.1") ;; A-list of current-diff-overlay symbols associated with buf types (defconst ediff-current-diff-overlay-alist @@ -783,9 +768,9 @@ to temp files in buffer jobs and when Ediff needs to find fine differences." (defun ediff-region-help-echo (extent-or-window &optional overlay _point) (unless overlay (setq overlay extent-or-window)) - (let ((is-current (ediff-overlay-get overlay 'ediff)) - (face (ediff-overlay-get overlay 'face)) - (diff-num (ediff-overlay-get overlay 'ediff-diff-num)) + (let ((is-current (overlay-get overlay 'ediff)) + (face (overlay-get overlay 'face)) + (diff-num (overlay-get overlay 'ediff-diff-num)) face-help) ;; This happens only for refinement overlays @@ -804,7 +789,7 @@ to temp files in buffer jobs and when Ediff needs to find fine differences." (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))) + (if (and (ediff-window-display-p) (not (display-color-p))) (condition-case nil (set-face-background-pixmap face pixmap) (error @@ -839,14 +824,6 @@ DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-current-diff-A' this variable represents.") (ediff-hide-face ediff-current-diff-face-A) -;; Until custom.el for XEmacs starts supporting :inverse-video we do this. -;; This means that some user customization may be trashed. -(and (featurep 'xemacs) - (ediff-has-face-support-p) - (not (ediff-color-display-p)) - (copy-face 'modeline ediff-current-diff-face-A)) - - (defface ediff-current-diff-B '((((class color) (min-colors 88) (background light)) @@ -869,13 +846,6 @@ this variable represents.") widget to customize the actual face `ediff-current-diff-B' this variable represents.") (ediff-hide-face ediff-current-diff-face-B) -;; Until custom.el for XEmacs starts supporting :inverse-video we do this. -;; This means that some user customization may be trashed. -(and (featurep 'xemacs) - (ediff-has-face-support-p) - (not (ediff-color-display-p)) - (copy-face 'modeline ediff-current-diff-face-B)) - (defface ediff-current-diff-C '((((class color) (min-colors 88) (background light)) @@ -897,13 +867,6 @@ DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-current-diff-C' this variable represents.") (ediff-hide-face ediff-current-diff-face-C) -;; Until custom.el for XEmacs starts supporting :inverse-video we do this. -;; This means that some user customization may be trashed. -(and (featurep 'xemacs) - (ediff-has-face-support-p) - (not (ediff-color-display-p)) - (copy-face 'modeline ediff-current-diff-face-C)) - (defface ediff-current-diff-Ancestor '((((class color) (min-colors 88) (background light)) @@ -927,13 +890,6 @@ DO NOT CHANGE this variable. Instead, use the customization widget to customize the actual face object `ediff-current-diff-Ancestor' this variable represents.") (ediff-hide-face ediff-current-diff-face-Ancestor) -;; Until custom.el for XEmacs starts supporting :inverse-video we do this. -;; This means that some user customization may be trashed. -(and (featurep 'xemacs) - (ediff-has-face-support-p) - (not (ediff-color-display-p)) - (copy-face 'modeline ediff-current-diff-face-Ancestor)) - (defface ediff-fine-diff-A '((((class color) (min-colors 88) (background light)) @@ -1383,8 +1339,8 @@ This default should work without changes." overl diff-num) (mapcar (lambda (rec) (setq overl (ediff-get-diff-overlay-from-diff-record rec) - diff-num (ediff-overlay-get overl 'ediff-diff-num)) - (if (ediff-overlay-buffer overl) + diff-num (overlay-get overl 'ediff-diff-num)) + (if (overlay-buffer overl) ;; only if overlay is alive (ediff-set-overlay-face overl @@ -1410,8 +1366,8 @@ This default should work without changes." ;; this record is itself a vector (defsubst ediff-clear-fine-diff-vector (diff-record) (if diff-record - (mapc #'ediff-delete-overlay - (ediff-get-fine-diff-vector-from-diff-record diff-record)))) + (mapc #'delete-overlay + (ediff-get-fine-diff-vector-from-diff-record diff-record)))) (defsubst ediff-clear-fine-differences-in-one-buffer (n buf-type) (ediff-clear-fine-diff-vector (ediff-get-difference n buf-type)) @@ -1425,49 +1381,37 @@ This default should work without changes." (defsubst ediff-mouse-event-p (event) - (if (featurep 'xemacs) - (button-event-p event) - (string-match "mouse" (format "%S" (event-basic-type event))))) + (string-match "mouse" (format "%S" (event-basic-type event)))) (defsubst ediff-key-press-event-p (event) - (if (featurep 'xemacs) - (key-press-event-p event) - (or (char-or-string-p event) (symbolp event)))) + (or (char-or-string-p event) (symbolp event))) (defun ediff-event-point (event) (cond ((ediff-mouse-event-p event) - (if (featurep 'xemacs) - (event-point event) - (posn-point (event-start event)))) + (posn-point (event-start event))) ((ediff-key-press-event-p event) (point)) (t (error "Error")))) (defun ediff-event-buffer (event) (cond ((ediff-mouse-event-p event) - (if (featurep 'xemacs) - (event-buffer event) - (window-buffer (posn-window (event-start event))))) + (window-buffer (posn-window (event-start event)))) ((ediff-key-press-event-p event) (current-buffer)) (t (error "Error")))) -(defun ediff-event-key (event-or-key) - (if (featurep 'xemacs) - ;;(if (eventp event-or-key) (event-key event-or-key) event-or-key) - (if (eventp event-or-key) (event-to-character event-or-key t t) event-or-key) - event-or-key)) +(define-obsolete-function-alias 'ediff-event-key #'identity "27.1") (defun ediff-last-command-char () - (ediff-event-key last-command-event)) + (declare (obsolete nil "27.1")) + last-command-event) (defsubst ediff-frame-iconified-p (frame) - (and (ediff-window-display-p) (frame-live-p frame) - (if (featurep 'xemacs) - (frame-iconified-p frame) - (eq (frame-visible-p frame) 'icon)))) + (and (ediff-window-display-p) + (frame-live-p frame) + (eq (frame-visible-p frame) 'icon))) (defsubst ediff-window-visible-p (wind) ;; under TTY, window-live-p also means window is visible @@ -1476,17 +1420,13 @@ This default should work without changes." (frame-visible-p (window-frame wind))))) -(defsubst ediff-frame-char-width (frame) - (if (featurep 'xemacs) - (/ (frame-pixel-width frame) (frame-width frame)) - (frame-char-width frame))) +(define-obsolete-function-alias 'ediff-frame-char-width + #'frame-char-width "27.1") (defun ediff-reset-mouse (&optional frame do-not-grab-mouse) (or frame (setq frame (selected-frame))) (if (ediff-window-display-p) (let ((frame-or-wind frame)) - (if (featurep 'xemacs) - (setq frame-or-wind (frame-selected-window frame))) (or do-not-grab-mouse ;; don't set mouse if the user said to never do this (not ediff-grab-mouse) @@ -1523,65 +1463,42 @@ This default should work without changes." ediff-mouse-pixel-threshold)))) (t nil)))) -(defsubst ediff-frame-char-height (frame) - (if (featurep 'xemacs) - (glyph-height ediff-H-glyph (frame-selected-window frame)) - (frame-char-height frame))) +(define-obsolete-function-alias 'ediff-frame-char-height + #'frame-char-height "27.1") ;; Some overlay functions (defsubst ediff-overlay-start (overl) - (if (ediff-overlayp overl) - (if (featurep 'xemacs) - (extent-start-position overl) - (overlay-start overl)))) + (if (overlayp overl) + (overlay-start overl))) (defsubst ediff-overlay-end (overl) - (if (ediff-overlayp overl) - (if (featurep 'xemacs) - (extent-end-position overl) - (overlay-end overl)))) + (if (overlayp overl) + (overlay-end overl))) (defsubst ediff-empty-overlay-p (overl) (= (ediff-overlay-start overl) (ediff-overlay-end overl))) -;; 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 (featurep 'xemacs) - (and (extent-live-p overl) (extent-object overl)) - (overlay-buffer overl))) +(define-obsolete-function-alias 'ediff-overlay-buffer + #'overlay-buffer "27.1") -;; 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 (featurep 'xemacs) - (and (extent-live-p overl) (extent-property overl property)) - (overlay-get overl property))) +(define-obsolete-function-alias 'ediff-overlay-get #'overlay-get "27.1") -;; 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 OVERLAY's buffer exists, call `move-overlay'." + (let ((buf (and overlay (overlay-buffer overlay)))) (if (ediff-buffer-live-p buf) - (if (featurep 'xemacs) - (set-extent-endpoints overlay beg end) - (move-overlay overlay beg end buffer)) + (move-overlay overlay beg end buffer) ;; buffer's dead (if overlay - (ediff-delete-overlay overlay))))) + (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 (featurep 'xemacs) - (set-extent-property overlay prop value) - (overlay-put overlay prop value)) - (ediff-delete-overlay overlay))) + "Calls `overlay-put', but checks if overlay's buffer exists." + (if (ediff-buffer-live-p (overlay-buffer overlay)) + (overlay-put overlay prop value) + (delete-overlay overlay))) ;; temporarily uses DIR to abbreviate file name ;; if DIR is nil, use default-directory @@ -1590,10 +1507,7 @@ Checks if overlay's buffer exists." (let ((directory-abbrev-alist (list (cons dir "")))) (abbreviate-file-name file))) (t - (if (featurep 'xemacs) - ;; XEmacs requires addl argument - (abbreviate-file-name file t) - (abbreviate-file-name file))))) + (abbreviate-file-name file)))) ;; Takes a directory and returns the parent directory. ;; does nothing to `/'. If the ARG is a regular file, diff --git a/lisp/vc/ediff-mult.el b/lisp/vc/ediff-mult.el index 3a869bff3e4..4dc0485e7e5 100644 --- a/lisp/vc/ediff-mult.el +++ b/lisp/vc/ediff-mult.el @@ -471,7 +471,7 @@ Moves in circular fashion. With numeric prefix arg, skip this many items." (ediff-next-meta-item1) (setq overl (ediff-get-meta-overlay-at-pos (point))) ;; skip invisible ones - (while (and overl (ediff-overlay-get overl 'invisible)) + (while (and overl (overlay-get overl 'invisible)) (ediff-next-meta-item1) (setq overl (ediff-get-meta-overlay-at-pos (point))))))) @@ -499,7 +499,7 @@ Moves in circular fashion. With numeric prefix arg, skip this many items." (ediff-previous-meta-item1) (setq overl (ediff-get-meta-overlay-at-pos (point))) ;; skip invisible ones - (while (and overl (ediff-overlay-get overl 'invisible)) + (while (and overl (overlay-get overl 'invisible)) (ediff-previous-meta-item1) (setq overl (ediff-get-meta-overlay-at-pos (point))))))) @@ -929,7 +929,7 @@ behavior." ;; in the meta buffer. If nil, use SPC (defun ediff-replace-session-activity-marker-in-meta-buffer (point new-marker) (let* ((overl (ediff-get-meta-overlay-at-pos point)) - (session-info (ediff-overlay-get overl 'ediff-meta-info)) + (session-info (overlay-get overl 'ediff-meta-info)) (activity-marker (ediff-get-session-activity-marker session-info)) buffer-read-only) (or new-marker activity-marker (setq new-marker ?\s)) @@ -944,7 +944,7 @@ behavior." ;; the meta buffer. If nil, use SPC (defun ediff-replace-session-status-in-meta-buffer (point new-status) (let* ((overl (ediff-get-meta-overlay-at-pos point)) - (session-info (ediff-overlay-get overl 'ediff-meta-info)) + (session-info (overlay-get overl 'ediff-meta-info)) (status (ediff-get-session-status session-info)) buffer-read-only) (setq new-status (or new-status status ?\s)) @@ -988,9 +988,7 @@ behavior." (erase-buffer) ;; delete phony overlays that used to represent sessions before the buff ;; was redrawn - (if (featurep 'xemacs) - (map-extents 'delete-extent) - (mapc #'delete-overlay (overlays-in 1 1))) + (mapc #'delete-overlay (overlays-in 1 1)) (setq regexp (ediff-get-group-regexp meta-list) merge-autostore-dir @@ -1077,7 +1075,7 @@ behavior." ;; Do hiding (if overl (ediff-overlay-put overl 'invisible t))) ((and (eq (ediff-get-session-status session-info) ?H) - overl (ediff-overlay-get overl 'invisible)) + overl (overlay-get overl 'invisible)) ;; Do unhiding (ediff-overlay-put overl 'invisible nil)) (t (ediff-replace-session-activity-marker-in-meta-buffer @@ -1094,36 +1092,26 @@ behavior." (defun ediff-update-session-marker-in-dir-meta-buffer (session-num) (let (buffer-meta-overlays session-info overl buffer-read-only) - (setq overl - (if (featurep 'xemacs) - (map-extents - (lambda (ext _maparg) - (if (and - (ediff-overlay-get ext 'ediff-meta-info) - (eq (ediff-overlay-get ext 'ediff-meta-session-number) - session-num)) - ext))) - ;; Emacs doesn't have map-extents, so try harder - ;; Splice overlay lists to get all buffer overlays - (setq buffer-meta-overlays (overlay-lists) - buffer-meta-overlays (append (car buffer-meta-overlays) - (cdr buffer-meta-overlays))) - (car - (delq nil - (mapcar - (lambda (overl) - (if (and - (ediff-overlay-get overl 'ediff-meta-info) - (eq (ediff-overlay-get - overl 'ediff-meta-session-number) - session-num)) - overl)) - buffer-meta-overlays))))) + ;; Splice overlay lists to get all buffer overlays + (setq buffer-meta-overlays (overlay-lists) + buffer-meta-overlays (append (car buffer-meta-overlays) + (cdr buffer-meta-overlays))) + (setq overl (car + (delq nil + (mapcar + (lambda (overl) + (if (and + (overlay-get overl 'ediff-meta-info) + (eq (overlay-get + overl 'ediff-meta-session-number) + session-num)) + overl)) + buffer-meta-overlays)))) (or overl (error "Bug in ediff-update-session-marker-in-dir-meta-buffer: no overlay with given number %S" session-num)) - (setq session-info (ediff-overlay-get overl 'ediff-meta-info)) + (setq session-info (overlay-get overl 'ediff-meta-info)) (goto-char (ediff-overlay-start overl)) (ediff-replace-session-activity-marker-in-meta-buffer (point) @@ -1434,9 +1422,7 @@ Useful commands: (erase-buffer) ;; delete phony overlays that used to represent sessions before the buff ;; was redrawn - (if (featurep 'xemacs) - (map-extents 'delete-extent) - (mapc #'delete-overlay (overlays-in 1 1))) + (mapc #'delete-overlay (overlays-in 1 1)) (insert (substitute-command-keys "\ This is a registry of all active Ediff sessions. @@ -1538,7 +1524,7 @@ Useful commands: ;; (SESSION-CTL-BUFFER STATUS OBJA OBJB OBJC) (defun ediff-set-meta-overlay (b e prop &optional session-number hidden) (let (overl) - (setq overl (ediff-make-overlay b e)) + (setq overl (make-overlay b e)) (ediff-overlay-put overl 'mouse-face 'highlight) (ediff-overlay-put overl 'ediff-meta-info prop) (ediff-overlay-put overl 'invisible hidden) @@ -2167,7 +2153,7 @@ all marked sessions must be active." (ediff-update-markers-in-dir-meta-buffer ediff-meta-list))) (setq overl (ediff-get-meta-overlay-at-pos (point))) ;; skip the invisible sessions - (while (and overl (ediff-overlay-get overl 'invisible)) + (while (and overl (overlay-get overl 'invisible)) (ediff-next-meta-item1) (setq overl (ediff-get-meta-overlay-at-pos (point)))) )))) @@ -2259,21 +2245,17 @@ If this is a session registry buffer then just bury it." ;; If optional NOERROR arg is given, don't report error and return nil if no ;; meta info is found on line. (defun ediff-get-meta-info (buf point &optional noerror) - (let (result olist tmp) + (let (result olist) (if (and point (ediff-buffer-live-p buf)) (ediff-with-current-buffer buf - (if (featurep 'xemacs) - (setq result - (if (setq tmp (extent-at point buf 'ediff-meta-info)) - (ediff-overlay-get tmp 'ediff-meta-info))) - (setq olist - (mapcar (lambda (elt) - (unless (overlay-get elt 'invisible) - (overlay-get elt 'ediff-meta-info))) - (overlays-at point))) - (while (and olist (null (car olist))) - (setq olist (cdr olist))) - (setq result (car olist))))) + (setq olist + (mapcar (lambda (elt) + (unless (overlay-get elt 'invisible) + (overlay-get elt 'ediff-meta-info))) + (overlays-at point))) + (while (and olist (null (car olist))) + (setq olist (cdr olist))) + (setq result (car olist)))) (or result (unless noerror (ediff-update-registry) @@ -2281,21 +2263,19 @@ If this is a session registry buffer then just bury it." (defun ediff-get-meta-overlay-at-pos (point) - (if (featurep 'xemacs) - (extent-at point (current-buffer) 'ediff-meta-info) - (let* ((overl-list (overlays-at point)) - (overl (car overl-list))) - (while (and overl (null (overlay-get overl 'ediff-meta-info))) - (setq overl-list (cdr overl-list) - overl (car overl-list))) - overl))) + (let* ((overl-list (overlays-at point)) + (overl (car overl-list))) + (while (and overl (null (overlay-get overl 'ediff-meta-info))) + (setq overl-list (cdr overl-list) + overl (car overl-list))) + overl)) (defun ediff-get-session-number-at-pos (point &optional meta-buffer) (setq meta-buffer (if (ediff-buffer-live-p meta-buffer) meta-buffer (current-buffer))) (ediff-with-current-buffer meta-buffer - (ediff-overlay-get + (overlay-get (ediff-get-meta-overlay-at-pos point) 'ediff-meta-session-number))) @@ -2304,46 +2284,29 @@ If this is a session registry buffer then just bury it." (if (eobp) (goto-char (point-min)) (let ((overl (ediff-get-meta-overlay-at-pos point))) - (if (featurep 'xemacs) - (progn ; xemacs - (if overl - (setq overl (next-extent overl)) - (setq overl (next-extent (current-buffer)))) - (if overl - (extent-start-position overl) - (point-max))) - ;; emacs - (if overl - ;; note: end of current overlay is the beginning of the next one - (overlay-end overl) - (next-overlay-change point)))))) + (if overl + ;; note: end of current overlay is the beginning of the next one + (overlay-end overl) + (next-overlay-change point))))) (defun ediff-previous-meta-overlay-start (point) (if (bobp) (goto-char (point-max)) (let ((overl (ediff-get-meta-overlay-at-pos point))) - (if (featurep 'xemacs) - (progn - (if overl - (setq overl (previous-extent overl)) - (setq overl (previous-extent (current-buffer)))) - (if overl - (extent-start-position overl) - (point-min))) - (if overl (setq point (overlay-start overl))) - ;; to get to the beginning of prev overlay - (if (not (bobp)) - ;; trick to overcome an emacs bug--doesn't always find previous - ;; overlay change correctly - (setq point (1- point))) - (setq point (previous-overlay-change point)) - ;; If we are not over an overlay after subtracting 1, it means we are - ;; in the description area preceding session records. In this case, - ;; goto the top of the registry buffer. - (or (car (overlays-at point)) - (setq point (point-min))) - point)))) + (if overl (setq point (overlay-start overl))) + ;; to get to the beginning of prev overlay + (if (not (bobp)) + ;; trick to overcome an emacs bug--doesn't always find previous + ;; overlay change correctly + (setq point (1- point))) + (setq point (previous-overlay-change point)) + ;; If we are not over an overlay after subtracting 1, it means we are + ;; in the description area preceding session records. In this case, + ;; goto the top of the registry buffer. + (or (car (overlays-at point)) + (setq point (point-min))) + point))) (autoload 'ediff-patch-file-internal "ediff-ptch") @@ -2403,10 +2366,10 @@ If this is a session registry buffer then just bury it." This is used only for sessions that involve 2 or 3 files at the same time. ACTION is an optional argument that can be ?h, ?m, ?=, to mark for hiding, mark for operation, or simply indicate which are equal files. If it is nil, then -`(ediff-last-command-char)' is used to decide which action to take." +`last-command-event' is used to decide which action to take." (interactive) (if (null action) - (setq action (ediff-last-command-char))) + (setq action last-command-event)) (let ((list (cdr ediff-meta-list)) marked1 marked2 marked3 fileinfo1 fileinfo2 fileinfo3 elt) diff --git a/lisp/vc/ediff-util.el b/lisp/vc/ediff-util.el index 6b2f023a222..52a765482e0 100644 --- a/lisp/vc/ediff-util.el +++ b/lisp/vc/ediff-util.el @@ -48,9 +48,6 @@ (require 'ediff-wind) (require 'ediff-diff) (require 'ediff-merg) -;; for compatibility with current stable version of xemacs -(if (featurep 'xemacs) - (require 'ediff-tbar)) ;;; Functions @@ -284,9 +281,6 @@ to invocation.") (make-local-variable 'window-min-height) (setq window-min-height 2) - (if (featurep 'xemacs) - (make-local-hook 'ediff-after-quit-hook-internal)) - ;; unwrap set up parameters passed as argument (while setup-parameters (set (car (car setup-parameters)) (cdr (car setup-parameters))) @@ -308,9 +302,6 @@ to invocation.") (if (string-match "buffer" (symbol-name ediff-job-name)) (setq ediff-keep-variants t)) - (if (featurep 'xemacs) - (make-local-hook 'pre-command-hook)) - (if (ediff-window-display-p) (add-hook 'pre-command-hook 'ediff-spy-after-mouse nil 'local)) (setq ediff-mouse-pixel-position (mouse-pixel-position)) @@ -417,7 +408,6 @@ to invocation.") ;; since these vars are local to control-buffer ;; These won't run if there are errors in diff (ediff-with-current-buffer ediff-buffer-A - (ediff-nuke-selective-display) (run-hooks 'ediff-prepare-buffer-hook) (if (ediff-with-current-buffer control-buffer ediff-merge-job) (setq buffer-read-only t)) @@ -431,7 +421,6 @@ to invocation.") ) (ediff-with-current-buffer ediff-buffer-B - (ediff-nuke-selective-display) (run-hooks 'ediff-prepare-buffer-hook) (if (ediff-with-current-buffer control-buffer ediff-merge-job) (setq buffer-read-only t)) @@ -445,7 +434,6 @@ to invocation.") (if ediff-3way-job (ediff-with-current-buffer ediff-buffer-C - (ediff-nuke-selective-display) ;; the merge buffer should never be narrowed ;; (it can happen if it is on rmail-mode or similar) (if (ediff-with-current-buffer control-buffer ediff-merge-job) @@ -463,7 +451,6 @@ to invocation.") (if (ediff-buffer-live-p ediff-ancestor-buffer) (ediff-with-current-buffer ediff-ancestor-buffer - (ediff-nuke-selective-display) (setq buffer-read-only t) (run-hooks 'ediff-prepare-buffer-hook) (or (memq control-buffer ediff-this-buffer-ediff-sessions) @@ -560,9 +547,6 @@ to invocation.") ediff-wide-display-p)) (set-window-dedicated-p (selected-window) t) - ;; In multiframe, toolbar is set in ediff-setup-control-frame - (if (not (ediff-multiframe-setup-p)) - (ediff-make-bottom-toolbar)) ; this checks if toolbar is requested (goto-char (point-min)) (skip-chars-forward ediff-whitespace))) @@ -773,9 +757,7 @@ Reestablish the default window display." (if (fboundp 'select-frame-set-input-focus) (select-frame-set-input-focus ediff-control-frame) (raise-frame ediff-control-frame) - (select-frame ediff-control-frame) - (and (featurep 'xemacs) (fboundp 'focus-frame) - (focus-frame ediff-control-frame)))) + (select-frame ediff-control-frame))) ;; Redisplay whatever buffers are showing, if there is a selected difference (let ((control-frame ediff-control-frame) @@ -831,7 +813,7 @@ Reestablish the default window display." (if window (progn (select-window window) - (ediff-deactivate-mark) + (deactivate-mark) (ediff-position-region (ediff-get-diff-posn buf-type 'beg nil control-buf) (ediff-get-diff-posn buf-type 'end nil control-buf) @@ -1026,7 +1008,7 @@ of the current buffer." (interactive) (ediff-barf-if-not-control-buffer) (let ((ctl-buf (if (null buf) (current-buffer))) - (buf-type (ediff-char-to-buftype (ediff-last-command-char)))) + (buf-type (ediff-char-to-buftype last-command-event))) (or buf (ediff-recenter)) (or buf (setq buf (ediff-get-buffer buf-type))) @@ -1134,10 +1116,7 @@ of the current buffer." (and (vc-backend file) (if (fboundp 'vc-state) (or (memq (vc-state file) '(edited needs-merge)) - (stringp (vc-state file))) - ;; XEmacs has no vc-state - (when (featurep 'xemacs) (vc-locking-user file))) - ))) + (stringp (vc-state file))))))) (defun ediff-file-checked-in-p (file) (and (featurep 'vc-hooks) @@ -1146,10 +1125,7 @@ of the current buffer." (if (fboundp 'vc-state) (and (not (memq (vc-state file) '(edited needs-merge))) - (not (stringp (vc-state file)))) - ;; XEmacs has no vc-state - (when (featurep 'xemacs) (not (vc-locking-user file)))) - )) + (not (stringp (vc-state file))))))) (defun ediff-file-compressed-p (file) (require 'jka-compr) @@ -1274,7 +1250,6 @@ 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 (featurep 'xemacs) 0.4 0)) ;; restore control buf, since ctl window may have been deleted ;; during resizing (set-buffer ctl-buf) @@ -1282,7 +1257,6 @@ 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 (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))))) @@ -1302,8 +1276,6 @@ which see." (setq window-setup-func #'ediff-setup-windows-plain) (message "ediff is now in 'plain' mode")) ((eq ediff-window-setup-function #'ediff-setup-windows-plain) - (if (ediff-in-control-buffer-p) - (ediff-kill-bottom-toolbar)) (if (and (ediff-buffer-live-p ediff-control-buffer) (window-live-p ediff-control-window)) (set-window-dedicated-p ediff-control-window nil)) @@ -1342,8 +1314,6 @@ To change the default, set the variable `ediff-use-toolbar-p', which see." (progn (or (ediff-window-display-p) (user-error "Emacs is not running as a window application")) - (if (ediff-use-toolbar-p) - (ediff-kill-bottom-toolbar)) ;; do this only after killing the toolbar (setq ediff-use-toolbar-p (not ediff-use-toolbar-p)) @@ -1357,36 +1327,8 @@ To change the default, set the variable `ediff-use-toolbar-p', which see." (ediff-recenter 'no-rehighlight))))) -;; if was using toolbar, kill it -(defun ediff-kill-bottom-toolbar () - ;; Using ctl-buffer or ediff-control-window for LOCALE does not - ;; work properly in XEmacs 19.14: we have to use - ;;(selected-frame). - ;; The problem with this is that any previous bottom-toolbar - ;; will not re-appear after our cleanup here. Is there a way - ;; to do "push" and "pop" toolbars ? --marcpa - (if (featurep 'xemacs) - (when (ediff-use-toolbar-p) - (set-specifier bottom-toolbar (list (selected-frame) nil)) - (set-specifier bottom-toolbar-visible-p (list (selected-frame) nil))))) - -;; If wants to use toolbar, make it. -;; If not, zero the toolbar for XEmacs. -;; Do nothing for Emacs. -(defun ediff-make-bottom-toolbar (&optional frame) - (when (ediff-window-display-p) - (setq frame (or frame (selected-frame))) - (if (featurep 'xemacs) - (cond ((ediff-use-toolbar-p) ; this checks for XEmacs - (set-specifier - bottom-toolbar - (list frame (if (ediff-3way-comparison-job) - ediff-toolbar-3way ediff-toolbar))) - (set-specifier bottom-toolbar-visible-p (list frame t)) - (set-specifier bottom-toolbar-height - (list frame ediff-toolbar-height))) - ((ediff-has-toolbar-support-p) - (set-specifier bottom-toolbar-height (list frame 0))))))) +(define-obsolete-function-alias 'ediff-kill-bottom-toolbar #'ignore "27.1") +(define-obsolete-function-alias 'ediff-make-bottom-toolbar #'ignore "27.1") ;; Merging @@ -1449,15 +1391,15 @@ Used in ediff-windows/regions only." 'C ediff-visible-bounds)) ) (ediff-with-current-buffer ediff-buffer-A - (if (ediff-overlay-buffer overl-A) + (if (overlay-buffer overl-A) (narrow-to-region (ediff-overlay-start overl-A) (ediff-overlay-end overl-A)))) (ediff-with-current-buffer ediff-buffer-B - (if (ediff-overlay-buffer overl-B) + (if (overlay-buffer overl-B) (narrow-to-region (ediff-overlay-start overl-B) (ediff-overlay-end overl-B)))) - (if (and ediff-3way-job (ediff-overlay-buffer overl-C)) + (if (and ediff-3way-job (overlay-buffer overl-C)) (ediff-with-current-buffer ediff-buffer-C (narrow-to-region (ediff-overlay-start overl-C) (ediff-overlay-end overl-C)))) @@ -1540,7 +1482,7 @@ the one half of the height of window-A." (error ediff-KILLED-VITAL-BUFFER)) (ediff-operate-on-windows - (if (memq (ediff-last-command-char) '(?v ?\C-v)) + (if (memq last-command-event '(?v ?\C-v)) #'scroll-up #'scroll-down) ;; calculate argument to scroll-up/down @@ -1595,7 +1537,7 @@ the width of the A/B/C windows." ;; interactively so that they set the window's min_hscroll. ;; Otherwise, automatic hscrolling will undo the effect of ;; hscrolling. - (if (= (ediff-last-command-char) ?<) + (if (= last-command-event ?<) (lambda (arg) (let ((prefix-arg arg)) (call-interactively #'scroll-left))) @@ -1867,7 +1809,7 @@ With a prefix argument, synchronize all files around the current point position in the specified buffer." (interactive "P") (ediff-barf-if-not-control-buffer) - (let* ((buf-type (ediff-char-to-buftype (ediff-last-command-char))) + (let* ((buf-type (ediff-char-to-buftype last-command-event)) (buffer (ediff-get-buffer buf-type)) (pt (ediff-with-current-buffer buffer (point))) (diff-no (ediff-diff-at-point buf-type nil (if arg 'after))) @@ -1975,10 +1917,8 @@ determine the source and the target buffers instead of the command keys." (if (eq arg '-) (setq arg -1)) ; translate neg arg to -1 (if (numberp arg) (ediff-jump-to-difference arg)) - (let* ((key1 (aref keys 0)) - (key2 (aref keys 1)) - (char1 (ediff-event-key key1)) - (char2 (ediff-event-key key2)) + (let* ((char1 (aref keys 0)) + (char2 (aref keys 1)) ediff-verbose-p) (ediff-copy-diff ediff-current-difference (ediff-char-to-buftype char1) @@ -2209,7 +2149,7 @@ determine the target buffer instead of `ediff-last-command-char'." (if (numberp arg) (ediff-jump-to-difference arg)) (ediff-pop-diff ediff-current-difference - (ediff-char-to-buftype (or key (ediff-last-command-char)))) + (ediff-char-to-buftype (or key last-command-event))) ;; recenter with rehighlighting, but no messages (let (ediff-verbose-p) (ediff-recenter))) @@ -2233,13 +2173,13 @@ a regular expression typed in by the user." (cond ((or (and (eq ediff-skip-diff-region-function ediff-focus-on-regexp-matches-function) - (eq (ediff-last-command-char) ?f)) + (eq last-command-event ?f)) (and (eq ediff-skip-diff-region-function ediff-hide-regexp-matches-function) - (eq (ediff-last-command-char) ?h))) + (eq last-command-event ?h))) (message "Selective browsing by regexp turned off") (setq ediff-skip-diff-region-function #'ediff-show-all-diffs)) - ((eq (ediff-last-command-char) ?h) + ((eq last-command-event ?h) (setq ediff-skip-diff-region-function ediff-hide-regexp-matches-function regexp-A (read-string @@ -2277,7 +2217,7 @@ a regular expression typed in by the user." (or (string= regexp-B "") (setq ediff-regexp-hide-B regexp-B)) (or (string= regexp-C "") (setq ediff-regexp-hide-C regexp-C))) - ((eq (ediff-last-command-char) ?f) + ((eq last-command-event ?f) (setq ediff-skip-diff-region-function ediff-focus-on-regexp-matches-function regexp-A @@ -2467,12 +2407,12 @@ temporarily reverses the meaning of this variable." ;; Apply selective display to narrow or widen (ediff-visible-region) (mapc (lambda (overl) - (if (ediff-overlayp overl) - (ediff-delete-overlay overl))) + (if (overlayp overl) + (delete-overlay overl))) ediff-wide-bounds) (mapc (lambda (overl) - (if (ediff-overlayp overl) - (ediff-delete-overlay overl))) + (if (overlayp overl) + (delete-overlay overl))) ediff-narrow-bounds) ;; restore buffer mode line id's in buffer-A/B/C @@ -2619,10 +2559,6 @@ temporarily reverses the meaning of this variable." ((window-live-p ctl-wind) (delete-window ctl-wind))) - ;; Hide bottom toolbar. --marcpa - (if (not (ediff-multiframe-setup-p)) - (ediff-kill-bottom-toolbar)) - (ediff-kill-buffer-carefully ctl-buf) (if (frame-live-p main-frame) @@ -3060,9 +2996,7 @@ Hit \\[ediff-recenter] to reset the windows afterward." (ediff-get-symbol-from-alist buf-type ediff-current-diff-overlay-alist)))) - (if (featurep 'xemacs) - (ediff-move-overlay current-diff-overlay begin end-hilit) - (ediff-move-overlay current-diff-overlay begin end-hilit buff)) + (ediff-move-overlay current-diff-overlay 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 @@ -3101,8 +3035,8 @@ Hit \\[ediff-recenter] to reset the windows afterward." 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)) + (if (overlayp current-diff-overlay) + (delete-overlay current-diff-overlay)) (set current-diff-overlay-var nil) ))) @@ -3351,10 +3285,10 @@ Without an argument, it saves customized diff argument, if available (ediff-barf-if-not-control-buffer) (ediff-compute-custom-diffs-maybe) (ediff-with-current-buffer - (cond ((memq (ediff-last-command-char) '(?a ?b ?c)) + (cond ((memq last-command-event '(?a ?b ?c)) (ediff-get-buffer - (ediff-char-to-buftype (ediff-last-command-char)))) - ((eq (ediff-last-command-char) ?d) + (ediff-char-to-buftype last-command-event))) + ((eq last-command-event ?d) (message "Saving diff output ...") (sit-for 1) ; let the user see the message (cond ((and arg (ediff-buffer-live-p ediff-diff-buffer)) @@ -3440,15 +3374,14 @@ Without an argument, it saves customized diff argument, if available (defun ediff-make-cloned-buffer (buff region-name) - (ediff-make-indirect-buffer + (make-indirect-buffer buff (generate-new-buffer-name - (concat (if (stringp buff) buff (buffer-name buff)) region-name)))) - + (concat (if (stringp buff) buff (buffer-name buff)) region-name)) + 'clone)) (defun ediff-make-indirect-buffer (base-buf indirect-buf-name) - (if (featurep 'xemacs) - (make-indirect-buffer base-buf indirect-buf-name) - (make-indirect-buffer base-buf indirect-buf-name 'clone))) + (declare (obsolete make-indirect-buffer "27.1")) + (make-indirect-buffer base-buf indirect-buf-name 'clone)) ;; This function operates only from an ediff control buffer @@ -3647,14 +3580,8 @@ 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 (featurep 'xemacs) - (ediff-overlay-put overlay 'begin-glyph nil) - (ediff-overlay-put overlay 'before-string nil)) - - (if (featurep 'xemacs) - (ediff-overlay-put overlay 'end-glyph nil) - (ediff-overlay-put overlay 'after-string nil)) - ))) + (ediff-overlay-put overlay 'before-string nil) + (ediff-overlay-put overlay 'after-string nil)))) @@ -3679,9 +3606,7 @@ Ediff Control Panel to restore highlighting." ediff-before-flag-bol ediff-before-flag-mol)))) ;; insert the flag itself - (if (featurep 'xemacs) - (ediff-overlay-put curr-overl 'begin-glyph flag) - (ediff-overlay-put curr-overl 'before-string flag)) + (ediff-overlay-put curr-overl 'before-string flag) ;; insert the flag after the difference ;; `after' must be set here, after the before-flag was inserted @@ -3695,10 +3620,7 @@ Ediff Control Panel to restore highlighting." ediff-after-flag-eol ediff-after-flag-mol)))) ;; insert the flag itself - (if (featurep 'xemacs) - (ediff-overlay-put curr-overl 'end-glyph flag) - (ediff-overlay-put curr-overl 'after-string flag)) - )) + (ediff-overlay-put curr-overl 'after-string flag))) ;;; Some diff region tests @@ -3758,7 +3680,7 @@ Ediff Control Panel to restore highlighting." this-command (1+ n) ediff-number-of-differences) (error ediff-NO-DIFFERENCES))) (setq diff-overlay (ediff-get-diff-overlay n buf-type))) - (if (not (ediff-buffer-live-p (ediff-overlay-buffer diff-overlay))) + (if (not (ediff-buffer-live-p (overlay-buffer diff-overlay))) (error ediff-KILLED-VITAL-BUFFER)) (if (eq pos 'beg) (ediff-overlay-start diff-overlay) @@ -3784,8 +3706,7 @@ Ediff Control Panel to restore highlighting." (defun ediff-clear-diff-vector (vec-var &optional fine-diffs-also) (if (vectorp (symbol-value vec-var)) (mapc (lambda (elt) - (ediff-delete-overlay - (ediff-get-diff-overlay-from-diff-record elt)) + (delete-overlay (ediff-get-diff-overlay-from-diff-record elt)) (if fine-diffs-also (ediff-clear-fine-diff-vector elt)) ) @@ -3813,19 +3734,11 @@ Ediff Control Panel to restore highlighting." (setq beg (eval beg))) (or (number-or-marker-p end) (setq end (eval end))) - (setq overl - (if (featurep 'xemacs) - (make-extent beg end buff) - ;; advance front and rear of the overlay - (make-overlay beg end buff nil 'rear-advance))) + ;; advance front and rear of the overlay + (setq overl (make-overlay beg end buff nil 'rear-advance)) ;; never detach (ediff-overlay-put overl 'evaporate nil) - ;; make overlay open-ended - ;; In emacs, it is made open ended at creation time - (when (featurep 'xemacs) - (ediff-overlay-put overl 'start-open nil) - (ediff-overlay-put overl 'end-open nil)) (ediff-overlay-put overl 'ediff-diff-num 0) overl)))) @@ -3983,7 +3896,7 @@ Ediff Control Panel to restore highlighting." (defvar ediff-buffer-name) (let ((reporter-prompt-for-summary-p t) (ctl-buf ediff-control-buffer) - (ediff-device-type (ediff-device-type)) + (ediff-device-type window-system) varlist salutation ediff-buffer-name) (setq varlist '(ediff-diff-program ediff-diff-options ediff-diff3-program ediff-diff3-options @@ -4091,22 +4004,13 @@ Mail anyway? (y or n) ") ) -(defun ediff-deactivate-mark () - (if (featurep 'xemacs) - (zmacs-deactivate-region) - (deactivate-mark))) +(define-obsolete-function-alias 'ediff-deactivate-mark #'deactivate-mark "27.1") (defun ediff-activate-mark () - (if (featurep 'xemacs) - (zmacs-activate-region) - (make-local-variable 'transient-mark-mode) - (setq mark-active 'ediff-util transient-mark-mode t))) - -(defun ediff-nuke-selective-display () - (if (featurep 'xemacs) - (nuke-selective-display) - )) + (make-local-variable 'transient-mark-mode) + (setq mark-active 'ediff-util transient-mark-mode t)) +(define-obsolete-function-alias 'ediff-nuke-selective-display #'ignore "27.1") ;; The next two are modified versions from emerge.el. ;; VARS must be a list of symbols @@ -4189,9 +4093,6 @@ Mail anyway? (y or n) ") (interactive) (ediff-barf-if-not-control-buffer) - (if (featurep 'xemacs) - (make-local-hook 'post-command-hook)) - (let ((pre-hook 'pre-command-hook) (post-hook 'post-command-hook)) (if (not (equal ediff-command-begin-time '(0 0 0))) @@ -4214,7 +4115,7 @@ Mail anyway? (y or n) ") \t\tState-of-diff:\t %S \t\tState-of-merge:\t %S " - (1+ (ediff-overlay-get (aref overl-vec 0) 'ediff-diff-num)) + (1+ (overlay-get (aref overl-vec 0) 'ediff-diff-num)) (aref overl-vec 0) ;; fine-diff-vector (if (= (length (aref overl-vec 1)) 0) diff --git a/lisp/vc/ediff-wind.el b/lisp/vc/ediff-wind.el index 7ca3941a375..028995a4e58 100644 --- a/lisp/vc/ediff-wind.el +++ b/lisp/vc/ediff-wind.el @@ -151,10 +151,6 @@ In this case, Ediff will use those frames to display these buffers." (const :tag "Split horizontally" split-window-horizontally) function)) -;; Definitions hidden from the compiler by compat wrappers. -(declare-function ediff-display-pixel-width "ediff-init") -(declare-function ediff-display-pixel-height "ediff-init") - (defconst ediff-control-frame-parameters (list '(name . "Ediff") @@ -179,11 +175,11 @@ In this case, Ediff will use those frames to display these buffers." ;; this blocks queries from window manager as to where to put ;; ediff's control frame. we put the frame outside the display, ;; so the initial frame won't jump all over the screen - (cons 'top (if (fboundp 'ediff-display-pixel-height) - (1+ (ediff-display-pixel-height)) + (cons 'top (if (fboundp 'display-pixel-height) + (1+ (display-pixel-height)) 3000)) - (cons 'left (if (fboundp 'ediff-display-pixel-width) - (1+ (ediff-display-pixel-width)) + (cons 'left (if (fboundp 'display-pixel-width) + (1+ (display-pixel-width)) 3000)) ) "Frame parameters for displaying Ediff Control Panel. @@ -219,7 +215,7 @@ This is used by the default control frame positioning function, customization of the default control frame positioning." :type 'integer) -(defcustom ediff-narrow-control-frame-leftward-shift (if (featurep 'xemacs) 7 3) +(defcustom ediff-narrow-control-frame-leftward-shift 3 "The leftward shift of control frame from the right edge of buf A's frame. Measured in characters. This is used by the default control frame positioning function, @@ -276,36 +272,32 @@ into icons, regardless of the window manager." (let (event) (message "Select windows by clicking. Please click on Window %d " wind-number) - (while (not (ediff-mouse-event-p (setq event (ediff-read-event)))) + (while (not (ediff-mouse-event-p (setq event (read-event)))) (if (sit-for 1) ; if sequence of events, wait till the final word (beep 1)) (message "Please click on Window %d " wind-number)) - (ediff-read-event) ; discard event - (if (featurep 'xemacs) - (event-window event) - (posn-window (event-start event))))) + (read-event) ; discard event + (posn-window (event-start event)))) ;; Select the lowest window on the frame. (defun ediff-select-lowest-window () - (if (featurep 'xemacs) - (select-window (frame-lowest-window)) - (let* ((lowest-window (selected-window)) - (bottom-edge (car (cdr (cdr (cdr (window-edges)))))) - (last-window (save-excursion - (other-window -1) (selected-window))) - (window-search t)) - (while window-search - (let* ((this-window (next-window)) - (next-bottom-edge - (car (cdr (cdr (cdr (window-edges this-window))))))) - (if (< bottom-edge next-bottom-edge) - (setq bottom-edge next-bottom-edge - lowest-window this-window)) - (select-window this-window) - (when (eq last-window this-window) - (select-window lowest-window) - (setq window-search nil))))))) + (let* ((lowest-window (selected-window)) + (bottom-edge (car (cdr (cdr (cdr (window-edges)))))) + (last-window (save-excursion + (other-window -1) (selected-window))) + (window-search t)) + (while window-search + (let* ((this-window (next-window)) + (next-bottom-edge + (car (cdr (cdr (cdr (window-edges this-window))))))) + (if (< bottom-edge next-bottom-edge) + (setq bottom-edge next-bottom-edge + lowest-window this-window)) + (select-window this-window) + (when (eq last-window this-window) + (select-window lowest-window) + (setq window-search nil)))))) ;;; Common window setup routines @@ -379,11 +371,6 @@ into icons, regardless of the window manager." (switch-to-buffer buf-A) (setq wind-A (selected-window)) - ;; XEmacs used to have a lot of trouble with display - ;; It did't set things right unless we tell it to sit still - ;; 19.12 seems ok. - ;;(if (featurep 'xemacs) (sit-for 0)) - (split-window-vertically (max 2 (- (window-height) merge-window-lines))) (if (eq (selected-window) wind-A) (other-window 1)) @@ -456,11 +443,6 @@ into icons, regardless of the window manager." (window-width wind-A)) 3))) - ;; XEmacs used to have a lot of trouble with display - ;; It did't set things right unless we told it to sit still - ;; 19.12 seems ok. - ;;(if (featurep 'xemacs) (sit-for 0)) - (funcall split-window-function wind-width-or-height) (if (eq (selected-window) wind-A) @@ -935,8 +917,6 @@ create a new splittable frame if none is found." (not (ediff-frame-has-dedicated-windows (window-frame wind))) ))) -(declare-function ediff-make-bottom-toolbar "ediff-util" (&optional frame)) - ;; Prepare or refresh control frame (defun ediff-setup-control-frame (ctl-buffer designated-minibuffer-frame) (let ((window-min-height 1) @@ -946,8 +926,6 @@ create a new splittable frame if none is found." fheight fwidth adjusted-parameters) (with-current-buffer ctl-buffer - (if (and (featurep 'xemacs) (featurep 'menubar)) - (set-buffer-menubar nil)) ;;(setq user-grabbed-mouse (ediff-user-grabbed-mouse)) (run-hooks 'ediff-before-setup-control-frame-hook)) @@ -1007,18 +985,6 @@ create a new splittable frame if none is found." '(auto-raise . t)) adjusted-parameters)) - ;; In XEmacs, buffer menubar needs to be killed before frame parameters - ;; are changed. - (if (ediff-has-toolbar-support-p) - (when (featurep 'xemacs) - (if (ediff-has-gutter-support-p) - (set-specifier top-gutter (list ctl-frame nil))) - (sit-for 0) - (set-specifier top-toolbar-height (list ctl-frame 0)) - ;;(set-specifier bottom-toolbar-height (list ctl-frame 0)) - (set-specifier left-toolbar-width (list ctl-frame 0)) - (set-specifier right-toolbar-width (list ctl-frame 0)))) - ;; As a precaution, we call modify frame parameters twice, in ;; order to make sure that at least once we do it for ;; a non-iconified frame. (It appears that in the Windows port of @@ -1026,9 +992,6 @@ create a new splittable frame if none is found." (if (eq system-type 'windows-nt) (modify-frame-parameters ctl-frame adjusted-parameters)) - ;; make or zap toolbar (if not requested) - (ediff-make-bottom-toolbar ctl-frame) - (goto-char (point-min)) (modify-frame-parameters ctl-frame adjusted-parameters) @@ -1070,12 +1033,6 @@ create a new splittable frame if none is found." (or (eq this-command 'ediff-quit) (not (eq ediff-grab-mouse t))))) - (when (featurep 'xemacs) - (with-current-buffer ctl-buffer - (make-local-hook 'select-frame-hook) - (add-hook 'select-frame-hook - #'ediff-xemacs-select-frame-hook nil 'local))) - (with-current-buffer ctl-buffer (run-hooks 'ediff-after-setup-control-frame-hook)))) @@ -1084,8 +1041,6 @@ create a new splittable frame if none is found." (ediff-with-current-buffer ctl-buffer (if (and (ediff-window-display-p) (frame-live-p ediff-control-frame)) (let ((ctl-frame ediff-control-frame)) - (if (and (featurep 'xemacs) (featurep 'menubar)) - (set-buffer-menubar default-menubar)) (setq ediff-control-frame nil) (delete-frame ctl-frame)))) (if ediff-multiframe @@ -1117,23 +1072,23 @@ create a new splittable frame if none is found." ctl-frame-left (+ frame-A-left (if ediff-use-long-help-message - (* (ediff-frame-char-width ctl-frame) + (* (frame-char-width ctl-frame) (+ ediff-wide-control-frame-rightward-shift horizontal-adjustment)) - (- (* frame-A-width (ediff-frame-char-width frame-A)) - (* (ediff-frame-char-width ctl-frame) + (- (* frame-A-width (frame-char-width frame-A)) + (* (frame-char-width ctl-frame) (+ ctl-frame-width ediff-narrow-control-frame-leftward-shift horizontal-adjustment)))))) (setq ctl-frame-top (min ctl-frame-top - (- (ediff-display-pixel-height) + (- (display-pixel-height) (* 2 ctl-frame-height - (ediff-frame-char-height ctl-frame)))) + (frame-char-height ctl-frame)))) ctl-frame-left (min ctl-frame-left - (- (ediff-display-pixel-width) - (* ctl-frame-width (ediff-frame-char-width ctl-frame))))) + (- (display-pixel-width) + (* ctl-frame-width (frame-char-width ctl-frame))))) ;; keep ctl frame within the visible bounds (setq ctl-frame-top (max ctl-frame-top 1) ctl-frame-left (max ctl-frame-left 1)) @@ -1153,12 +1108,12 @@ Saves the old frame parameters in `ediff-wide-display-orig-parameters'. The frame to be resized is kept in `ediff-wide-display-frame'. This function modifies only the left margin and the width of the display. It assumes that it is called from within the control buffer." - (if (not (fboundp 'ediff-display-pixel-width)) + (if (not (fboundp 'display-pixel-width)) (user-error "Can't determine display width")) (let* ((frame-A (window-frame ediff-window-A)) (frame-A-params (frame-parameters frame-A)) - (cw (ediff-frame-char-width frame-A)) - (wd (- (/ (ediff-display-pixel-width) cw) 5))) + (cw (frame-char-width frame-A)) + (wd (- (/ (display-pixel-width) cw) 5))) (setq ediff-wide-display-orig-parameters (list (cons 'left (max 0 (eval (cdr (assoc 'left frame-A-params))))) (cons 'width (cdr (assoc 'width frame-A-params)))) @@ -1300,9 +1255,7 @@ It assumes that it is called from within the control buffer." ;; If buff is not live, return nil (defun ediff-get-visible-buffer-window (buff) (if (ediff-buffer-live-p buff) - (if (featurep 'xemacs) - (get-buffer-window buff t) - (get-buffer-window buff 'visible)))) + (get-buffer-window buff 'visible))) ;;; Functions to decide when to redraw windows diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el index 20e27003dac..fae694d5221 100644 --- a/lisp/vc/ediff.el +++ b/lisp/vc/ediff.el @@ -1541,9 +1541,7 @@ arguments after setting up the Ediff buffers." "Return string describing the version of Ediff. When called interactively, displays the version." (interactive) - (if (if (featurep 'xemacs) - (interactive-p) - (called-interactively-p 'interactive)) + (if (called-interactively-p 'interactive) (message "%s" (ediff-version)) (format "Ediff %s" ediff-version))) @@ -1562,7 +1560,7 @@ With optional NODE, goes to that node." (condition-case nil (progn (pop-to-buffer (get-buffer-create "*info*")) - (info (if (featurep 'xemacs) "ediff.info" "ediff")) + (info "ediff") (if node (Info-goto-node node) (message "Type `i' to search for a specific topic")) |