;; This file is part of GNU Emacs.
;; Author: Dale R. Worley <worley@world.std.com>
-;; Version: 5fsf
;; Keywords: unix, tools
;; This software was created by Dale R. Worley and is
;;; Code:
-;;;###autoload
-(defvar menu-bar-emerge-menu (make-sparse-keymap "Emerge"))
-;;;###autoload (fset 'menu-bar-emerge-menu (symbol-value 'menu-bar-emerge-menu))
-
-;;;###autoload (define-key menu-bar-emerge-menu [emerge-merge-directories]
-;;;###autoload '("Merge Directories..." . emerge-merge-directories))
-;;;###autoload (define-key menu-bar-emerge-menu [emerge-revisions-with-ancestor]
-;;;###autoload '("Revisions with Ancestor..." . emerge-revisions-with-ancestor))
-;;;###autoload (define-key menu-bar-emerge-menu [emerge-revisions]
-;;;###autoload '("Revisions..." . emerge-revisions))
-;;;###autoload (define-key menu-bar-emerge-menu [emerge-files-with-ancestor]
-;;;###autoload '("Files with Ancestor..." . emerge-files-with-ancestor))
-;;;###autoload (define-key menu-bar-emerge-menu [emerge-files]
-;;;###autoload '("Files..." . emerge-files))
-;;;###autoload (define-key menu-bar-emerge-menu [emerge-buffers-with-ancestor]
-;;;###autoload '("Buffers with Ancestor..." . emerge-buffers-with-ancestor))
-;;;###autoload (define-key menu-bar-emerge-menu [emerge-buffers]
-;;;###autoload '("Buffers..." . emerge-buffers))
-
;; There aren't really global variables, just dynamic bindings
(defvar A-begin)
(defvar A-end)
Commands must be prefixed by \\<emerge-fast-keymap>\\[emerge-basic-keymap] in `edit' mode,
but can be invoked directly in `fast' mode.")
-(defvar emerge-version "5fsf"
- "The version of Emerge.")
+(define-obsolete-variable-alias 'emerge-version 'emacs-version "23.2")
(defun emerge-version ()
"Return string describing the version of Emerge.
When called interactively, displays the version."
(interactive)
- (if (interactive-p)
- (message "Emerge version %s" (emerge-version))
- emerge-version))
+ (if (called-interactively-p 'interactive)
+ (message "Emerge version %s" emacs-version)
+ emacs-version))
+
+(make-obsolete 'emerge-version 'emacs-version "23.2")
;;; Emerge configuration variables
;; finicky details of their output, including the somewhat strange
;; way they number lines of a file.
(defcustom emerge-diff-program "diff"
- "*Name of the program which compares two files."
+ "Name of the program which compares two files."
:type 'string
:group 'emerge)
(defcustom emerge-diff3-program "diff3"
- "*Name of the program which compares three files.
+ "Name of the program which compares three files.
Its arguments are the ancestor file and the two variant files."
:type 'string
:group 'emerge)
(defcustom emerge-diff-options ""
- "*Options to pass to `emerge-diff-program' and `emerge-diff3-program'."
+ "Options to pass to `emerge-diff-program' and `emerge-diff3-program'."
:type 'string
:group 'emerge)
(defcustom emerge-match-diff-line
(let ((x "\\([0-9]+\\)\\(\\|,\\([0-9]+\\)\\)"))
(concat "^" x "\\([acd]\\)" x "$"))
- "*Pattern to match lines produced by diff that describe differences.
+ "Pattern to match lines produced by diff that describe differences.
This is as opposed to lines from the source files."
:type 'regexp
:group 'emerge)
(defcustom emerge-diff-ok-lines-regexp
"^\\([0-9,]+[acd][0-9,]+$\\|[<>] \\|---\\)"
- "*Regexp that matches normal output lines from `emerge-diff-program'.
+ "Regexp that matches normal output lines from `emerge-diff-program'.
Lines that do not match are assumed to be error messages."
:type 'regexp
:group 'emerge)
(defcustom emerge-diff3-ok-lines-regexp
"^\\([1-3]:\\|====\\| \\)"
- "*Regexp that matches normal output lines from `emerge-diff3-program'.
+ "Regexp that matches normal output lines from `emerge-diff3-program'.
Lines that do not match are assumed to be error messages."
:type 'regexp
:group 'emerge)
(defcustom emerge-rcs-ci-program "ci"
- "*Name of the program that checks in RCS revisions."
+ "Name of the program that checks in RCS revisions."
:type 'string
:group 'emerge)
(defcustom emerge-rcs-co-program "co"
- "*Name of the program that checks out RCS revisions."
+ "Name of the program that checks out RCS revisions."
:type 'string
:group 'emerge)
(defcustom emerge-process-local-variables nil
- "*Non-nil if Emerge should process local-variables lists in merge buffers.
+ "Non-nil if Emerge should process local-variables lists in merge buffers.
\(You can explicitly request processing the local-variables
by executing `(hack-local-variables)'.)"
:type 'boolean
:group 'emerge)
(defcustom emerge-execute-line-deletions nil
- "*If non-nil: `emerge-execute-line' makes no output if an input was deleted.
+ "If non-nil: `emerge-execute-line' makes no output if an input was deleted.
It concludes that an input version has been deleted when an ancestor entry
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
:group 'emerge)
(defcustom emerge-before-flag "vvvvvvvvvvvvvvvvvvvv\n"
- "*Flag placed above the highlighted block of code. Must end with newline.
+ "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."
:type 'string
:group 'emerge)
(defcustom emerge-after-flag "^^^^^^^^^^^^^^^^^^^^\n"
- "*Flag placed below the highlighted block of code. Must end with newline.
+ "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."
:type 'string
;; Hook variables
(defcustom emerge-startup-hook nil
- "*Hook to run in the merge buffer after the merge has been set up."
+ "Hook to run in the merge buffer after the merge has been set up."
:type 'hook
:group 'emerge)
(defcustom emerge-select-hook nil
- "*Hook to run after a difference has been selected.
+ "Hook to run after a difference has been selected.
The variable `n' holds the (internal) number of the difference."
:type 'hook
:group 'emerge)
(defcustom emerge-unselect-hook nil
- "*Hook to run after a difference has been unselected.
+ "Hook to run after a difference has been unselected.
The variable `n' holds the (internal) number of the difference."
:type 'hook
:group 'emerge)
;; Emerge commands.
(defcustom emerge-default-last-directories nil
- "*If nil, default dir for filenames in emerge is `default-directory'.
+ "If nil, default dir for filenames in emerge is `default-directory'.
If non-nil, filenames complete in the directory of the last argument of the
same type to an `emerge-files...' command."
:type 'boolean
(emerge-new-flags)
(defcustom emerge-min-visible-lines 3
- "*Number of lines that we want to show above and below the flags when we are
+ "Number of lines that we want to show above and below the flags when we are
displaying a difference."
:type 'integer
:group 'emerge)
(defcustom emerge-temp-file-prefix
(expand-file-name "emerge" temporary-file-directory)
- "*Prefix to put on Emerge temporary file names.
+ "Prefix to put on Emerge temporary file names.
Do not start with `~/' or `~USERNAME/'."
:type 'string
:group 'emerge)
(defcustom emerge-temp-file-mode 384 ; u=rw only
- "*Mode for Emerge temporary files."
+ "Mode for Emerge temporary files."
:type 'integer
:group 'emerge)
(defcustom emerge-combine-versions-template
"#ifdef NEW\n%b#else /* not NEW */\n%a#endif /* not NEW */\n"
- "*Template for `emerge-combine-versions' to combine the two versions.
+ "Template for `emerge-combine-versions' to combine the two versions.
The template is inserted as a string, with the following interpolations:
%a the A version of the difference
%b the B version of the difference
(make-sparse-keymap "Move"))
(defcustom emerge-command-prefix "\C-c\C-c"
- "*Command prefix for Emerge commands in `edit' mode.
+ "Command prefix for Emerge commands in `edit' mode.
Must be set before Emerge is loaded."
:type 'string
:group 'emerge)
(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 emerge-options]
+ (cons "Merge-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]
(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))
+ '("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]
(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))
+ '(menu-item "Skip Prefers" emerge-skip-prefers
+ :button (:toggle . emerge-skip-prefers)))
(define-key emerge-options-menu [emerge-auto-advance]
- '("Auto Advance" . emerge-auto-advance))
+ '(menu-item "Auto Advance" emerge-auto-advance
+ :button (:toggle . emerge-auto-advance)))
(define-key emerge-options-menu [emerge-edit-mode]
- '("Edit Mode" . emerge-edit-mode))
+ '(menu-item "Edit Mode" emerge-edit-mode :enable (not emerge-edit-mode)))
(define-key emerge-options-menu [emerge-fast-mode]
- '("Fast Mode" . emerge-fast-mode))
+ '(menu-item "Fast Mode" emerge-fast-mode :enable (not 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-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 emerge-options]
+ (cons "Merge-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]
(A-end (1- (aref diff-vector 1)))
;; so further kills don't append
this-command)
- (save-excursion
- (set-buffer emerge-A-buffer)
+ (with-current-buffer emerge-A-buffer
(copy-region-as-kill A-begin A-end))))
(defun emerge-copy-as-kill-B ()
(B-end (1- (aref diff-vector 3)))
;; so further kills don't append
this-command)
- (save-excursion
- (set-buffer emerge-B-buffer)
+ (with-current-buffer emerge-B-buffer
(copy-region-as-kill B-begin B-end))))
(defun emerge-insert-A (arg)
(princ (buffer-name))))
(princ "\n")))
(princ emerge-output-description)
- (save-excursion
- (set-buffer standard-output)
+ (with-current-buffer standard-output
(help-mode)))))
(defun emerge-join-differences (arg)
(emerge-select-difference emerge-current-difference)
(emerge-recenter)))
+;; FIXME the manual advertised this as working in the A or B buffers,
+;; but it does not, because all the buffer locals are nil there.
+;; It would work to call it from the merge buffer and specify that one
+;; wants to use the value of point in the A or B buffer.
+;; But with the prefix argument already in use, there is no easy way
+;; to have it ask for a buffer.
(defun emerge-find-difference (arg)
"Find the difference containing the current position of the point.
If there is no containing difference and the prefix argument is positive,
;; minor-mode indicator))
;; (princ (documentation minor-mode)))))
;; (setq minor-modes (cdr minor-modes))))
-;; (save-excursion
-;; (set-buffer standard-output)
+;; (with-current-buffer standard-output
;; (help-mode))
-;; (print-help-return-message)))
+;; (help-print-return-message)))
;; This goes with the redefinition of describe-mode.
;;;; Adjust things so that keyboard macro definitions are documented correctly.
(progn
(erase-buffer)
(insert name)
- (if (not (pos-visible-in-window-p))
- (while (and (not (pos-visible-in-window-p))
- (> (1- (frame-height)) (window-height)))
- (enlarge-window 1)))
+ (while (and (not (pos-visible-in-window-p))
+ (not (window-full-height-p)))
+ (enlarge-window 1))
(let* ((echo-keystrokes 0)
(c (read-event)))
(if (not (eq c 32))