diff options
author | Michael Kifer <kifer@cs.stonybrook.edu> | 1995-10-06 00:57:20 +0000 |
---|---|---|
committer | Michael Kifer <kifer@cs.stonybrook.edu> | 1995-10-06 00:57:20 +0000 |
commit | fa2eb9acd26cf81b9a70796511e64592e973952d (patch) | |
tree | 042bcfcca9c09cdf679dc2917f669c57c418fafe /lisp/ediff-hook.el | |
parent | c439fb3045f133f26a1aaeb8a9d789f5bf80ad12 (diff) | |
download | emacs-fa2eb9acd26cf81b9a70796511e64592e973952d.tar.gz emacs-fa2eb9acd26cf81b9a70796511e64592e973952d.tar.bz2 emacs-fa2eb9acd26cf81b9a70796511e64592e973952d.zip |
Initial revision
Diffstat (limited to 'lisp/ediff-hook.el')
-rw-r--r-- | lisp/ediff-hook.el | 273 |
1 files changed, 273 insertions, 0 deletions
diff --git a/lisp/ediff-hook.el b/lisp/ediff-hook.el new file mode 100644 index 00000000000..74e3c9c72d6 --- /dev/null +++ b/lisp/ediff-hook.el @@ -0,0 +1,273 @@ +;;; ediff-hook.el --- setup for Ediff's menus and autoloads +;;; Copyright (C) 1995 Free Software Foundation, Inc. + +;; Author: Michael Kifer <kifer@cs.sunysb.edu> + +;; This file is part of GNU Emacs. + +;; GNU Emacs is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation; either version 2, or (at your option) +;; any later version. + +;; GNU Emacs is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs; see the file COPYING. If not, write to +;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + + +;;; These must be placed in menu-bar.el in Emacs +;; +;; (define-key menu-bar-tools-menu [eregistry] +;; '("List Ediff Sessions" . ediff-show-registry)) +;; (define-key menu-bar-tools-menu [epatch] +;; '("Apply Patch" . menu-bar-epatch-menu)) +;; (define-key menu-bar-tools-menu [ediff-merge] +;; '("Merge" . menu-bar-ediff-merge-menu)) +;; (define-key menu-bar-tools-menu [ediff] +;; '("Compare" . menu-bar-ediff-menu)) + + +(defun ediff-xemacs-init-menus () + (if (featurep 'menubar) + (progn + (add-submenu + '("Tools") ediff-menu "OO-Browser...") + (add-submenu + '("Tools") ediff-merge-menu "OO-Browser...") + (add-submenu + '("Tools") epatch-menu "OO-Browser...") + (add-menu-button + '("Tools") + ["List Ediff Sessions" ediff-show-registry t] "OO-Browser...") + (add-menu-button + '("Tools") + ["---" nil nil] "OO-Browser...") + ))) + + + +;; explicit string-match is needed: ediff-xemacs-p is not defined at build time +(cond ((string-match "XEmacs" emacs-version) + (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])) + + ;; put these menus before Object-Oriented-Browser in Tools menu + (add-hook 'before-init-hook 'ediff-xemacs-init-menus) + ;; this `if' is to be deleted before going into distribution + (if (not purify-flag) + (ediff-xemacs-init-menus)) + ) + + ;; Emacs--only if menu-bar is loaded + ((featurep 'menu-bar) + ;; initialize menu bar keymaps + (defvar menu-bar-epatch-menu (make-sparse-keymap)) + (fset 'menu-bar-epatch-menu (symbol-value 'menu-bar-epatch-menu)) + (defvar menu-bar-ediff-merge-menu (make-sparse-keymap)) + (fset 'menu-bar-ediff-merge-menu + (symbol-value 'menu-bar-ediff-merge-menu)) + (defvar menu-bar-ediff-menu (make-sparse-keymap)) + (fset 'menu-bar-ediff-menu (symbol-value 'menu-bar-ediff-menu)) + + ;; define ediff-menu + (define-key menu-bar-ediff-menu [ediff-dir-revision] + '("Directory Revisions ..." . ediff-directory-revisions)) + (define-key menu-bar-ediff-menu [ediff-revision] + '("File with Revision ..." . ediff-revision)) + (define-key menu-bar-ediff-menu [separator-ediff-directories] '("--")) + (define-key menu-bar-ediff-menu [ediff-directories3] + '("Three Directories ..." . ediff-directories3)) + (define-key menu-bar-ediff-menu [ediff-directories] + '("Two Directories ..." . ediff-directories)) + (define-key menu-bar-ediff-menu [separator-ediff-files] '("--")) + (define-key menu-bar-ediff-menu [ediff-buffers3] + '("Three Buffers ..." . ediff-buffers3)) + (define-key menu-bar-ediff-menu [ediff-files3] + '("Three Files ..." . ediff-files3)) + (define-key menu-bar-ediff-menu [ediff-buffers] + '("Two Buffers ..." . ediff-buffers)) + (define-key menu-bar-ediff-menu [ediff-files] + '("Two Files ..." . ediff-files)) + (define-key menu-bar-ediff-menu [separator-ediff-regions] '("--")) + (define-key menu-bar-ediff-menu [ediff-regions-linewise] + '("Regions Line-by-line ..." . ediff-regions-linewise)) + (define-key menu-bar-ediff-menu [ediff-regions-wordwise] + '("Regions Word-by-word ..." . ediff-regions-wordwise)) + (define-key menu-bar-ediff-menu [separator-ediff-windows] '("--")) + (define-key menu-bar-ediff-menu [ediff-windows-linewise] + '("Windows Line-by-line ..." . ediff-windows-linewise)) + (define-key menu-bar-ediff-menu [ediff-windows-wordwise] + '("Windows Word-by-word ..." . ediff-windows-wordwise)) + + ;; define merge menu + (define-key + menu-bar-ediff-merge-menu [ediff-merge-dir-revisions-with-ancestor] + '("Directory Revisions with Ancestor ..." + . ediff-merge-directory-revisions-with-ancestor)) + (define-key + menu-bar-ediff-merge-menu [ediff-merge-dir-revisions] + '("Directory Revisions ..." . ediff-merge-directory-revisions)) + (define-key + menu-bar-ediff-merge-menu [ediff-merge-revisions-with-ancestor] + '("Revisions with Ancestor ..." + . ediff-merge-revisions-with-ancestor)) + (define-key menu-bar-ediff-merge-menu [ediff-merge-revisions] + '("Revisions ..." . ediff-merge-revisions)) + (define-key menu-bar-ediff-merge-menu [separator-ediff-merge] '("--")) + (define-key + menu-bar-ediff-merge-menu [ediff-merge-directories-with-ancestor] + '("Directories with Ancestor ..." + . ediff-merge-directories-with-ancestor)) + (define-key menu-bar-ediff-merge-menu [ediff-merge-directories] + '("Directories ..." . ediff-merge-directories)) + (define-key + menu-bar-ediff-merge-menu [separator-ediff-merge-dirs] '("--")) + (define-key + menu-bar-ediff-merge-menu [ediff-merge-buffers-with-ancestor] + '("Buffers with Ancestor ..." . ediff-merge-buffers-with-ancestor)) + (define-key menu-bar-ediff-merge-menu [ediff-merge-buffers] + '("Buffers ..." . ediff-merge-buffers)) + (define-key menu-bar-ediff-merge-menu [ediff-merge-files-with-ancestor] + '("Files with Ancestor ..." . ediff-merge-files-with-ancestor)) + (define-key menu-bar-ediff-merge-menu [ediff-merge-files] + '("Files ..." . ediff-merge-files)) + + ;; define epatch menu + (define-key menu-bar-epatch-menu [ediff-patch-buffer] + '("To a Buffer ..." . ediff-patch-buffer)) + (define-key menu-bar-epatch-menu [ediff-patch-file] + '("To a File ..." . ediff-patch-file))) + + ) ; cond + +;; arrange foe autoloads +(if purify-flag + () ; if dumping, autoloads are set up in loaddefs.el + ;; if the user decides to load this file, set up autoloads + ;; compare files and buffers + (autoload 'ediff "ediff" "Compare two files" t) + (autoload 'ediff-files "ediff" "Compare two files" t) + (autoload 'ediff-buffers "ediff" "Compare two bufers" t) + (autoload 'ediff3 "ediff" "Compare three files" t) + (autoload 'ediff-files3 "ediff" "Compare three files" t) + (autoload 'ediff-buffers3 "ediff" "Compare three bufers" t) + + (autoload 'ediff-revision "ediff" "Compare versions of a file" t) + + ;; compare regions and windows + (autoload 'ediff-windows-wordwise + "ediff" "Compare two windows word-by-word" t) + (autoload 'ediff-regions-wordwise + "ediff" "Compare two regions word-by-word" t) + (autoload 'ediff-windows-linewise + "ediff" "Compare two windows line-by-line" t) + (autoload 'ediff-regions-linewise + "ediff" "Compare two regions line-by-line" t) + + ;; patch + (autoload 'ediff-patch-file "ediff" "Patch a file" t) + (autoload 'epatch "ediff" "Patch a file" t) + (autoload 'ediff-patch-buffer "ediff" "Patch a buffer") + (autoload 'epatch-buffer "ediff" "Patch a buffer" t) + + ;; merge + (autoload 'ediff-merge "ediff" "Merge two files" t) + (autoload 'ediff-merge-files "ediff" "Merge two files" t) + (autoload 'ediff-merge-files-with-ancestor + "ediff" "Merge two files using a third file as an ancestor" t) + (autoload 'ediff-merge-buffers "ediff" "Merge two buffers" t) + (autoload 'ediff-merge-buffers-with-ancestor + "ediff" "Merge two buffers using a third buffer as an ancestor" t) + + (autoload 'ediff-merge-revisions "ediff" "Merge two versions of a file" t) + (autoload 'ediff-merge-revisions-with-ancestor + "ediff" "Merge two versions of a file" t) + + ;; compare directories + (autoload 'edirs "ediff" "Compare files in two directories" t) + (autoload 'ediff-directories "ediff" "Compare files in two directories" t) + (autoload 'edirs3 "ediff" "Compare files in three directories" t) + (autoload 'ediff-directories3 "ediff" "Compare files in three directories" t) + + (autoload 'edir-revisions + "ediff" "Compare two versions of a file" t) + (autoload 'ediff-directory-revisions + "ediff" "Compare two versions of a file" t) + + ;; merge directories + (autoload 'edirs-merge "ediff" "Merge files in two directories" t) + (autoload 'ediff-merge-directories + "ediff" "Merge files in two directories" t) + (autoload 'edirs-merge-with-ancestor + "ediff" + "Merge files in two directories using files in a third dir as ancestors" t) + (autoload 'ediff-merge-directories-with-ancestor + "ediff" + "Merge files in two directories using files in a third dir as ancestors" t) + + (autoload 'edir-merge-revisions + "ediff" "Merge versions of files in a directory" t) + (autoload 'ediff-merge-directory-revisions + "ediff" "Merge versions of files in a directory" t) + (autoload 'ediff-merge-directory-revisions-with-ancestor + "ediff" + "Merge versions of files in a directory using other versions as ancestors" + t) + (autoload 'edir-merge-revisions-with-ancestor + "ediff" + "Merge versions of files in a directory using other versions as ancestors" + t) + (autoload 'ediff-show-registry + "ediff-meta" + "Display the registry of active Ediff sessions" + t) + ) ; if purify-flag + + +(provide 'ediff-hook) + + +;;; ediff-hook.el ends here |