home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 2: Applications / Linux Cubed Series 2 - Applications.iso / editors / emacs / xemacs / xemacs-1.006 / xemacs-1 / lib / xemacs-19.13 / lisp / ediff / ediff-hook.el < prev    next >
Encoding:
Text File  |  1995-07-28  |  10.5 KB  |  261 lines

  1. ;;; ediff-hook.el --- setup for Ediff's menus and autoloads
  2. ;;; Copyright (C) 1995 Free Software Foundation, Inc.
  3.  
  4. ;; Author: Michael Kifer <kifer@cs.sunysb.edu>
  5.  
  6. ;; This file is part of GNU Emacs.
  7.  
  8. ;; GNU Emacs is free software; you can redistribute it and/or modify
  9. ;; it under the terms of the GNU General Public License as published by
  10. ;; the Free Software Foundation; either version 2, or (at your option)
  11. ;; any later version.
  12.  
  13. ;; GNU Emacs is distributed in the hope that it will be useful,
  14. ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
  15. ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16. ;; GNU General Public License for more details.
  17.  
  18. ;; You should have received a copy of the GNU General Public License
  19. ;; along with GNU Emacs; see the file COPYING.  If not, write to
  20. ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
  21.  
  22.  
  23. ;;;   These must be placed in menu-bar.el in Emacs
  24. ;;
  25. ;;      (define-key menu-bar-tools-menu [epatch]
  26. ;;    '("Apply Patch" . menu-bar-epatch-menu))
  27. ;;      (define-key menu-bar-tools-menu [ediff-merge]
  28. ;;    '("Merge" . menu-bar-ediff-merge-menu))
  29. ;;      (define-key menu-bar-tools-menu [ediff]
  30. ;;    '("Compare" . menu-bar-ediff-menu))
  31.  
  32.  
  33. (defun ediff-xemacs-init-menus ()
  34.   (if (featurep 'menubar)
  35.       (progn
  36.     (add-submenu
  37.      '("Tools") ediff-menu "OO-Browser...")
  38.     (add-submenu
  39.      '("Tools") ediff-merge-menu "OO-Browser...")
  40.     (add-submenu
  41.      '("Tools") epatch-menu "OO-Browser..."))))
  42.  
  43.  
  44.  
  45. ;; explicit string-match is needed: ediff-xemacs-p is not defined at build time
  46. (cond ((string-match "XEmacs" emacs-version)
  47.        (defvar ediff-menu
  48.      '("Compare"
  49.        ["Two Files ..."  ediff-files t]
  50.        ["Two Buffers ..." ediff-buffers t]
  51.        ["Three Files ..."  ediff-files3 t]
  52.        ["Three Buffers ..." ediff-buffers3 t]
  53.        "---"
  54.        ["Two Directories ..." ediff-directories t]
  55.        ["Three Directories ..." ediff-directories3 t]
  56.        "---"
  57.        ["File with Revision ..."  ediff-revision t]
  58.        ["Directory Revisions ..."  ediff-directory-revisions t]
  59.        "---"
  60.        ["Windows Word-by-word ..." ediff-windows-wordwise t]
  61.        ["Windows Line-by-line ..." ediff-windows-linewise t]
  62.        "---"
  63.        ["Regions Word-by-word ..." ediff-regions-wordwise t]
  64.        ["Regions Line-by-line ..." ediff-regions-linewise t]))
  65.        (defvar ediff-merge-menu
  66.      '("Merge"
  67.        ["Files ..."  ediff-merge-files t]
  68.        ["Files with Ancestor ..." ediff-merge-files-with-ancestor t]
  69.        ["Buffers ..."  ediff-merge-buffers t]
  70.        ["Buffers with Ancestor ..."
  71.         ediff-merge-buffers-with-ancestor t]
  72.        "---"
  73.        ["Directories ..."  ediff-merge-directories t]
  74.        ["Directories with Ancestor ..."
  75.         ediff-merge-directories-with-ancestor t]
  76.        "---"
  77.        ["Revisions ..."  ediff-merge-revisions t]
  78.        ["Revisions with Ancestor ..."
  79.         ediff-merge-revisions-with-ancestor t]
  80.        ["Directory Revisions ..." ediff-merge-directory-revisions t]
  81.        ["Directory Revisions with Ancestor ..."
  82.         ediff-merge-directory-revisions-with-ancestor t]))
  83.        (defvar epatch-menu
  84.      '("Apply Patch"
  85.        ["To a file ..."  ediff-patch-file t]
  86.        ["To a buffer ..." ediff-patch-buffer t]))
  87.  
  88.        ;; put these menus before Object-Oriented-Browser in Tools menu
  89.        (add-hook 'before-init-hook 'ediff-xemacs-init-menus)
  90.        ;; this `if' is to be deleted before going into distribution
  91.        (if (not purify-flag)
  92.        (ediff-xemacs-init-menus))
  93.        )
  94.       
  95.       ;; Emacs--only if menu-bar is loaded
  96.       ((featurep 'menu-bar)
  97.        ;; initialize menu bar keymaps
  98.        (defvar menu-bar-epatch-menu (make-sparse-keymap))
  99.        (fset 'menu-bar-epatch-menu (symbol-value 'menu-bar-epatch-menu))
  100.        (defvar menu-bar-ediff-merge-menu (make-sparse-keymap))
  101.        (fset 'menu-bar-ediff-merge-menu 
  102.          (symbol-value 'menu-bar-ediff-merge-menu))
  103.        (defvar menu-bar-ediff-menu (make-sparse-keymap))
  104.        (fset 'menu-bar-ediff-menu (symbol-value 'menu-bar-ediff-menu))
  105.  
  106.        ;; define ediff-menu
  107.        (define-key menu-bar-ediff-menu [ediff-dir-revision]
  108.      '("Directory Revisions ..." . ediff-directory-revisions))
  109.        (define-key menu-bar-ediff-menu [ediff-revision]
  110.      '("File with Revision ..." . ediff-revision))
  111.        (define-key menu-bar-ediff-menu [separator-ediff-directories] '("--"))
  112.        (define-key menu-bar-ediff-menu [ediff-directories3]
  113.      '("Three Directories ..." . ediff-directories3))
  114.        (define-key menu-bar-ediff-menu [ediff-directories]
  115.      '("Two Directories ..." . ediff-directories))
  116.        (define-key menu-bar-ediff-menu [separator-ediff-files] '("--"))
  117.        (define-key menu-bar-ediff-menu [ediff-buffers3]
  118.      '("Three Buffers ..." . ediff-buffers3))
  119.        (define-key menu-bar-ediff-menu [ediff-files3]
  120.      '("Three Files ..." . ediff-files3))
  121.        (define-key menu-bar-ediff-menu [ediff-buffers]
  122.      '("Two Buffers ..." . ediff-buffers))
  123.        (define-key menu-bar-ediff-menu [ediff-files]
  124.      '("Two Files ..." . ediff-files))
  125.        (define-key menu-bar-ediff-menu [separator-ediff-regions] '("--"))
  126.        (define-key menu-bar-ediff-menu [ediff-regions-linewise]
  127.      '("Regions Line-by-line ..." . ediff-regions-linewise))
  128.        (define-key menu-bar-ediff-menu [ediff-regions-wordwise]
  129.      '("Regions Word-by-word ..." . ediff-regions-wordwise))
  130.        (define-key menu-bar-ediff-menu [separator-ediff-windows] '("--"))
  131.        (define-key menu-bar-ediff-menu [ediff-windows-linewise]
  132.      '("Windows Line-by-line ..." . ediff-windows-linewise))
  133.        (define-key menu-bar-ediff-menu [ediff-windows-wordwise]
  134.      '("Windows Word-by-word ..." . ediff-windows-wordwise))
  135.  
  136.        ;; define merge menu
  137.        (define-key
  138.      menu-bar-ediff-merge-menu [ediff-merge-dir-revisions-with-ancestor]
  139.      '("Directory Revisions with Ancestor ..."
  140.        . ediff-merge-directory-revisions-with-ancestor))
  141.        (define-key
  142.      menu-bar-ediff-merge-menu [ediff-merge-dir-revisions]
  143.      '("Directory Revisions ..." . ediff-merge-directory-revisions))
  144.        (define-key
  145.      menu-bar-ediff-merge-menu [ediff-merge-revisions-with-ancestor]
  146.      '("Revisions with Ancestor ..."
  147.        . ediff-merge-revisions-with-ancestor))
  148.        (define-key menu-bar-ediff-merge-menu [ediff-merge-revisions]
  149.      '("Revisions ..." . ediff-merge-revisions))
  150.        (define-key menu-bar-ediff-merge-menu [separator-ediff-merge] '("--"))
  151.        (define-key
  152.      menu-bar-ediff-merge-menu [ediff-merge-directories-with-ancestor]
  153.      '("Directories with Ancestor ..."
  154.        . ediff-merge-directories-with-ancestor))
  155.        (define-key menu-bar-ediff-merge-menu [ediff-merge-directories]
  156.      '("Directories ..." . ediff-merge-directories))
  157.        (define-key 
  158.      menu-bar-ediff-merge-menu [separator-ediff-merge-dirs] '("--"))
  159.        (define-key
  160.      menu-bar-ediff-merge-menu [ediff-merge-buffers-with-ancestor]
  161.      '("Buffers with Ancestor ..." . ediff-merge-buffers-with-ancestor))
  162.        (define-key menu-bar-ediff-merge-menu [ediff-merge-buffers]
  163.      '("Buffers ..." . ediff-merge-buffers))
  164.        (define-key menu-bar-ediff-merge-menu [ediff-merge-files-with-ancestor]
  165.      '("Files with Ancestor ..." . ediff-merge-files-with-ancestor))
  166.        (define-key menu-bar-ediff-merge-menu [ediff-merge-files]
  167.      '("Files ..." . ediff-merge-files))
  168.  
  169.        ;; define epatch menu
  170.        (define-key menu-bar-epatch-menu [ediff-patch-buffer]
  171.      '("To a Buffer ..." . ediff-patch-buffer))
  172.        (define-key menu-bar-epatch-menu [ediff-patch-file]
  173.      '("To a File ..." . ediff-patch-file)))
  174.       
  175.       ) ; cond
  176.  
  177. ;; arrange foe autoloads
  178. (if purify-flag
  179.     () ; if dumping, autoloads are set up in loaddefs.el
  180.   ;; if the user decides to load this file, set up autoloads
  181.   ;; compare files and buffers
  182.   (autoload 'ediff "ediff" "Compare two files" t)
  183.   (autoload 'ediff-files "ediff" "Compare two files" t)
  184.   (autoload 'ediff-buffers "ediff" "Compare two bufers" t)
  185.   (autoload 'ediff3  "ediff"  "Compare three files" t)
  186.   (autoload 'ediff-files3 "ediff" "Compare three files" t)
  187.   (autoload 'ediff-buffers3 "ediff" "Compare three bufers" t)
  188.  
  189.   (autoload 'ediff-revision "ediff" "Compare versions of a file" t)
  190.  
  191.   ;; compare regions and windows
  192.   (autoload 'ediff-windows-wordwise 
  193.     "ediff" "Compare two windows word-by-word" t)
  194.   (autoload 'ediff-regions-wordwise 
  195.     "ediff" "Compare two regions word-by-word" t)
  196.   (autoload 'ediff-windows-linewise 
  197.     "ediff" "Compare two windows line-by-line" t)
  198.   (autoload 'ediff-regions-linewise 
  199.     "ediff" "Compare two regions line-by-line" t)
  200.  
  201.   ;; patch
  202.   (autoload 'ediff-patch-file "ediff" "Patch a file" t)
  203.   (autoload 'epatch "ediff" "Patch a file" t)
  204.   (autoload 'ediff-patch-buffer "ediff" "Patch a buffer")
  205.   (autoload 'epatch-buffer "ediff" "Patch a buffer" t)
  206.  
  207.   ;; merge
  208.   (autoload 'ediff-merge "ediff" "Merge two files" t)
  209.   (autoload 'ediff-merge-files "ediff" "Merge two files" t)
  210.   (autoload 'ediff-merge-files-with-ancestor
  211.     "ediff" "Merge two files using a third file as an ancestor" t)
  212.   (autoload 'ediff-merge-buffers "ediff" "Merge two buffers" t)
  213.   (autoload 'ediff-merge-buffers-with-ancestor
  214.     "ediff" "Merge two buffers using a third buffer as an ancestor" t)
  215.  
  216.   (autoload 'ediff-merge-revisions "ediff" "Merge two versions of a file" t)
  217.   (autoload 'ediff-merge-revisions-with-ancestor
  218.     "ediff" "Merge two versions of a file" t)
  219.  
  220.   ;; compare directories
  221.   (autoload 'edirs "ediff" "Compare files in two directories" t)
  222.   (autoload 'ediff-directories "ediff" "Compare files in two directories" t)
  223.   (autoload 'edirs3 "ediff" "Compare files in three directories" t)
  224.   (autoload 'ediff-directories3 "ediff" "Compare files in three directories" t)
  225.  
  226.   (autoload 'edir-revisions 
  227.     "ediff" "Compare two versions of a file" t)
  228.   (autoload 'ediff-directory-revisions 
  229.     "ediff" "Compare two versions of a file" t)
  230.  
  231.   ;; merge directories
  232.   (autoload 'edirs-merge "ediff" "Merge files in two directories" t)
  233.   (autoload 'ediff-merge-directories
  234.     "ediff" "Merge files in two directories" t)
  235.   (autoload 'edirs-merge-with-ancestor
  236.     "ediff"
  237.     "Merge files in two directories using files in a third dir as ancestors" t)
  238.   (autoload 'ediff-merge-directories-with-ancestor
  239.     "ediff"
  240.     "Merge files in two directories using files in a third dir as ancestors" t)
  241.  
  242.   (autoload 'edir-merge-revisions 
  243.     "ediff" "Merge versions of files in a directory" t)
  244.   (autoload 'ediff-merge-directory-revisions 
  245.     "ediff" "Merge versions of files in a directory" t)
  246.   (autoload 'ediff-merge-directory-revisions-with-ancestor
  247.     "ediff"
  248.     "Merge versions of files in a directory using other versions as ancestors"
  249.     t)
  250.   (autoload 'edir-merge-revisions-with-ancestor
  251.     "ediff"
  252.     "Merge versions of files in a directory using other versions as ancestors"
  253.     t)
  254.   ) ; if purify-flag
  255.  
  256.  
  257. (provide 'ediff-hook)
  258.  
  259.  
  260. ;;; ediff-hook.el ends here
  261.