diff options
author | Richard M. Stallman <rms@gnu.org> | 1994-02-06 02:07:44 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1994-02-06 02:07:44 +0000 |
commit | 8a76430de3071689bdbf94b6f3a17cb22d3e5e81 (patch) | |
tree | 8389e99acbed66465005d32cc6a4203731f54769 /lisp/emerge.el | |
parent | 3d043715ee4c8603aac5b491e459c2e82b4e5a30 (diff) | |
download | emacs-8a76430de3071689bdbf94b6f3a17cb22d3e5e81.tar.gz |
Add defvars for many vars already being used.
(emerge-options-menu, emerge-merge-menu, emerge-move-menu): New vars.
(emerge-setup-fixed-keymaps): Set up emerge-move-menu,
emerge-merge-menu and emerge-options-menu. Put them into
emerge-fast-keymap.
(emerge-set-keys): Put them into the emerge-edit-keymap.
(emerge-minor-modes-list): Add defvar.
(emerge-before-flag, emerge-after-flag): Move defvars up.
(emerge-files-remote, emerge-files-with-ancestor-remote):
(emerge-remote-exit): Var exit-func renamed to emerge-exit-func.
Diffstat (limited to 'lisp/emerge.el')
-rw-r--r-- | lisp/emerge.el | 168 |
1 files changed, 146 insertions, 22 deletions
diff --git a/lisp/emerge.el b/lisp/emerge.el index 40ecbbe3187..d5b01741b88 100644 --- a/lisp/emerge.el +++ b/lisp/emerge.el @@ -45,11 +45,12 @@ won't destroy Emerge control variables." (put '(, var) 'preserved t)))) ;; Add entries to minor-mode-alist so that emerge modes show correctly -(setq emerge-minor-modes-list '((emerge-mode " Emerge") - (emerge-fast-mode " F") - (emerge-edit-mode " E") - (emerge-auto-advance " A") - (emerge-skip-prefers " S"))) +(defvar emerge-minor-modes-list + '((emerge-mode " Emerge") + (emerge-fast-mode " F") + (emerge-edit-mode " E") + (emerge-auto-advance " A") + (emerge-skip-prefers " S"))) (if (not (assq 'emerge-mode minor-mode-alist)) (setq minor-mode-alist (append emerge-minor-modes-list minor-mode-alist))) @@ -132,6 +133,15 @@ is present, only one A or B entry is present, and an output entry is present. If nil: In such circumstances, the A or B file that is present will be copied to the designated output file.") +(defvar emerge-before-flag "vvvvvvvvvvvvvvvvvvvv\n" + "*Flag placed above the highlighted block of code. Must end with newline. +Must be set before Emerge is loaded, or emerge-new-flags must be run +after setting.") +(defvar emerge-after-flag "^^^^^^^^^^^^^^^^^^^^\n" + "*Flag placed below the highlighted block of code. Must end with newline. +Must be set before Emerge is loaded, or emerge-new-flags must be run +after setting.") + ;; Hook variables (defvar emerge-startup-hook nil @@ -166,6 +176,20 @@ same type to an `emerge-files...' command.") (defvar emerge-last-revision-ancestor nil "Last RCS revision used for ancestor file of an `emerge-revisions...' command.") +(defvar emerge-before-flag-length) +(defvar emerge-before-flag-lines) +(defvar emerge-before-flag-match) +(defvar emerge-after-flag-length) +(defvar emerge-after-flag-lines) +(defvar emerge-after-flag-match) +(defvar emerge-diff-buffer) +(defvar emerge-diff-error-buffer) +(defvar emerge-prefix-argument) +(defvar emerge-file-out) +(defvar emerge-exit-func) +(defvar emerge-globalized-difference-list) +(defvar emerge-globalized-number-of-differences) + ;; The flags used to mark differences in the buffers. ;; These function definitions need to be up here, because they are used @@ -192,15 +216,6 @@ depend on the flags." (setq i (match-end 0))) count)) -(defvar emerge-before-flag "vvvvvvvvvvvvvvvvvvvv\n" - "*Flag placed above the highlighted block of code. Must end with newline. -Must be set before Emerge is loaded, or emerge-new-flags must be run -after setting.") -(defvar emerge-after-flag "^^^^^^^^^^^^^^^^^^^^\n" - "*Flag placed below the highlighted block of code. Must end with newline. -Must be set before Emerge is loaded, or emerge-new-flags must be run -after setting.") - ;; Calculate dependent variables (emerge-new-flags) @@ -245,6 +260,15 @@ must be prefixed by \\<emerge-fast-keymap>\\[emerge-basic-keymap] in `edit' mode "Local keymap used in Emerge `fast' mode. Makes Emerge commands directly available.") +(defvar emerge-options-menu + (make-sparse-keymap "Options")) + +(defvar emerge-merge-menu + (make-sparse-keymap "Merge")) + +(defvar emerge-move-menu + (make-sparse-keymap "Move")) + (defvar emerge-command-prefix "\C-c\C-c" "*Command prefix for Emerge commands in `edit' mode. Must be set before Emerge is loaded.") @@ -308,7 +332,83 @@ Must be set before Emerge is loaded.") (substitute-key-definition 'write-file 'emerge-query-write-file emerge-fast-keymap (current-global-map)) (substitute-key-definition 'save-buffer 'emerge-query-save-buffer - emerge-fast-keymap (current-global-map))) + emerge-fast-keymap (current-global-map)) + + (define-key emerge-basic-keymap [menu-bar] (make-sparse-keymap)) + + (define-key emerge-fast-keymap [menu-bar options] + (cons "Options" emerge-options-menu)) + (define-key emerge-fast-keymap [menu-bar merge] + (cons "Merge" emerge-merge-menu)) + (define-key emerge-fast-keymap [menu-bar move] + (cons "Move" emerge-move-menu)) + + (define-key emerge-move-menu [emerge-scroll-reset] + '("Scroll Reset" . emerge-scroll-reset)) + (define-key emerge-move-menu [emerge-scroll-right] + '("Scroll Right" . emerge-scroll-right)) + (define-key emerge-move-menu [emerge-scroll-left] + '("Scroll Left" . emerge-scroll-left)) + (define-key emerge-move-menu [emerge-scroll-down] + '("Scroll Down" . emerge-scroll-down)) + (define-key emerge-move-menu [emerge-scroll-up] + '("Scroll Up" . emerge-scroll-up)) + (define-key emerge-move-menu [emerge-recenter] + '("Recenter" . emerge-recenter)) + (define-key emerge-move-menu [emerge-mark-difference] + '("Mark Difference" . emerge-mark-difference)) + (define-key emerge-move-menu [emerge-jump-to-difference] + '("Jump To Difference" . emerge-jump-to-difference)) + (define-key emerge-move-menu [emerge-find-difference] + '("Find Difference" . emerge-find-difference)) + (define-key emerge-move-menu [emerge-previous-difference] + '("Previous Difference" . emerge-previous-difference)) + (define-key emerge-move-menu [emerge-next-difference] + '("Next Difference" . emerge-next-difference)) + + + (define-key emerge-options-menu [emerge-one-line-window] + '("One Line Window" . emerge-one-line-window)) + (define-key emerge-options-menu [emerge-set-merge-mode] + '("Set Merge Mode" . emerge-set-merge-mode)) + (define-key emerge-options-menu [emerge-set-combine-template] + '("Set Combine Template..." . emerge-set-combine-template)) + (define-key emerge-options-menu [emerge-default-B] + '("Default B" . emerge-default-B)) + (define-key emerge-options-menu [emerge-default-A] + '("Default A" . emerge-default-A)) + (define-key emerge-options-menu [emerge-skip-prefers] + '("Skip Prefers" . emerge-skip-prefers)) + (define-key emerge-options-menu [emerge-auto-advance] + '("Auto Advance" . emerge-auto-advance)) + (define-key emerge-options-menu [emerge-edit-mode] + '("Edit Mode" . emerge-edit-mode)) + (define-key emerge-options-menu [emerge-fast-mode] + '("Fast Mode" . emerge-fast-mode)) + + (define-key emerge-merge-menu [emerge-abort] '("Abort" . emerge-abort)) + (define-key emerge-merge-menu [emerge-quit] '("Quit" . emerge-quit)) + (define-key emerge-merge-menu [emerge-split-difference] + '("Split Difference" . emerge-split-difference)) + (define-key emerge-merge-menu [emerge-join-differences] + '("Join Differences" . emerge-join-differences)) + (define-key emerge-merge-menu [emerge-trim-difference] + '("Trim Difference" . emerge-trim-difference)) + (define-key emerge-merge-menu [emerge-combine-versions] + '("Combine Versions" . emerge-combine-versions)) + (define-key emerge-merge-menu [emerge-copy-as-kill-B] + '("Copy B as Kill" . emerge-copy-as-kill-B)) + (define-key emerge-merge-menu [emerge-copy-as-kill-A] + '("Copy A as Kill" . emerge-copy-as-kill-A)) + (define-key emerge-merge-menu [emerge-insert-B] + '("Insert B" . emerge-insert-B)) + (define-key emerge-merge-menu [emerge-insert-A] + '("Insert A" . emerge-insert-A)) + (define-key emerge-merge-menu [emerge-select-B] + '("Select B" . emerge-select-B)) + (define-key emerge-merge-menu [emerge-select-A] + '("Select A" . emerge-select-A))) + ;; Variables which control each merge. They are local to the merge buffer. @@ -867,7 +967,7 @@ This is *not* a user option, since Emerge uses it for its own processing.") (setq emerge-file-out file-out) (emerge-files-internal file-a file-b nil - (list (` (lambda () (emerge-remote-exit (, file-out) '(, exit-func))))) + (list (` (lambda () (emerge-remote-exit (, file-out) '(, emerge-exit-func))))) file-out) (throw 'client-wait nil)) @@ -876,14 +976,14 @@ This is *not* a user option, since Emerge uses it for its own processing.") (setq emerge-file-out file-out) (emerge-files-with-ancestor-internal file-a file-b file-anc nil - (list (` (lambda () (emerge-remote-exit (, file-out) '(, exit-func))))) + (list (` (lambda () (emerge-remote-exit (, file-out) '(, emerge-exit-func))))) file-out) (throw 'client-wait nil)) -(defun emerge-remote-exit (file-out exit-func) +(defun emerge-remote-exit (file-out emerge-exit-func) (emerge-write-and-delete file-out) (kill-buffer emerge-merge-buffer) - (funcall exit-func (if emerge-prefix-argument 1 0))) + (funcall emerge-exit-func (if emerge-prefix-argument 1 0))) ;;; Functions to start Emerge on RCS versions @@ -1241,6 +1341,16 @@ Otherwise, the A or B file present is copied to the output file." ;; Install the Emerge commands (emerge-force-define-key emerge-edit-keymap emerge-command-prefix 'emerge-basic-keymap) + (define-key emerge-edit-keymap [menu-bar] (make-sparse-keymap)) + + ;; Create the additional menu bar items. + (define-key emerge-edit-keymap [menu-bar options] + (cons "Options" emerge-options-menu)) + (define-key emerge-edit-keymap [menu-bar merge] + (cons "Merge" emerge-merge-menu)) + (define-key emerge-edit-keymap [menu-bar move] + (cons "Move" emerge-move-menu)) + ;; Suppress write-file and save-buffer (substitute-key-definition 'write-file 'emerge-query-write-file @@ -1801,7 +1911,7 @@ which there is no preference." (if (zerop (% n 10)) (message "Setting default to A...%d" n))) (emerge-unselect-and-select-difference selected-difference))) - (message "Default A set")) + (message "Default choice is now A")) (defun emerge-default-B () "Make the B variant the default from here down. @@ -1823,7 +1933,7 @@ which there is no preference." (if (zerop (% n 10)) (message "Setting default to B...%d" n))) (emerge-unselect-and-select-difference selected-difference))) - (message "Default B set")) + (message "Default choice is now B")) (defun emerge-fast-mode () "Set fast mode, for Emerge. @@ -2326,10 +2436,24 @@ merge buffers." (setq temp (- temp emerge-after-flag-lines))))) temp)) +(defun emerge-set-combine-template (string &optional localize) + "Set `emerge-combine-versions-template' to STRING. +This value controls how `emerge-combine-versions' combines the two versions. +With prefix argument, `emerge-combine-versions-template' is made local to this +merge buffer. Localization is permanent for any particular merge buffer." + (interactive "s\nP") + (if localize + (make-local-variable 'emerge-combine-versions-template)) + (setq emerge-combine-versions-template string) + (message + (if (assq 'emerge-combine-versions-template (buffer-local-variables)) + "emerge-set-combine-versions-template set locally" + "emerge-set-combine-versions-template set"))) + (defun emerge-set-combine-versions-template (start end &optional localize) "Copy region into `emerge-combine-versions-template'. This controls how `emerge-combine-versions' will combine the two versions. -With prefix argument, `emerge-combine-versions' is made local to this +With prefix argument, `emerge-combine-versions-template' is made local to this merge buffer. Localization is permanent for any particular merge buffer." (interactive "r\nP") (if localize |