;;; pcvs-defs.el --- variable definitions for PCL-CVS
-;; Copyright (C) 1991-2000 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;; 2000, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@cs.yale.edu>
;; Keywords: pcl-cvs
-;; Version: $Name: $
-;; Revision: $Id: pcvs-defs.el,v 1.5 2000/06/13 19:06:07 fx Exp $
;; This file is part of GNU Emacs.
;; 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, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
;;; Code:
-(defconst pcl-cvs-version "$Name: $")
-
(eval-when-compile (require 'cl))
(require 'pcvs-util)
(defvar cvs-version
(ignore-errors
(with-temp-buffer
- (call-process "cvs" nil t nil "-v")
+ (call-process cvs-program nil t nil "-v")
(goto-char (point-min))
(when (re-search-forward "(CVS) \\([0-9]+\\)\\.\\([0-9]+\\)" nil t)
(cons (string-to-number (match-string 1))
(defcustom cvs-auto-remove-directories 'handled
"*If ALL, directory entries will never be shown.
-If HANLDED, only non-handled directories will be shown.
+If HANDLED, only non-handled directories will be shown.
If EMPTY, only non-empty directories will be shown."
:group 'pcl-cvs
:type '(choice (const :tag "No" nil) (const all) (const handled) (const empty)))
:group 'pcl-cvs
:type '(boolean))
-(defvar cvs-diff-ignore-marks t
- "Obsolete: use `cvs-invert-ignore-marks' instead.")
+(defvar cvs-diff-ignore-marks t)
+(make-obsolete-variable 'cvs-diff-ignore-marks
+ 'cvs-invert-ignore-marks)
(defcustom cvs-invert-ignore-marks
(let ((l ()))
(defcustom cvs-add-default-message nil
"*Default message to use when adding files.
-If set to NIL, `cvs-mode-add' will always prompt for a message."
+If set to nil, `cvs-mode-add' will always prompt for a message."
:group 'pcl-cvs
:type '(choice (const :tag "Prompt" nil)
(string)))
-(defvar cvs-diff-buffer-name "*cvs-diff*"
- "Obsolete variable: use `cvs-buffer-name-alist' instead.")
+(defvar cvs-diff-buffer-name "*cvs-diff*")
+(make-obsolete-variable 'cvs-diff-buffer-name
+ 'cvs-buffer-name-alist)
(defcustom cvs-find-file-and-jump nil
"Jump to the modified area when finding a file.
(defcustom cvs-buffer-name-alist
'(("diff" cvs-diff-buffer-name diff-mode)
("status" "*cvs-info*" cvs-status-mode)
- ("tree" (format "*cvs-%s*" cmd) cvs-status-mode)
+ ("tree" "*cvs-info*" cvs-status-mode)
("message" "*cvs-commit*" nil log-edit)
("log" "*cvs-info*" log-view-mode))
"*Buffer name and mode to be used for each command.
:type '(choice (const :tag "Ediff" (cvs-ediff-diff . cvs-ediff-merge))
(const :tag "Emerge" (cvs-emerge-diff . cvs-emerge-merge))))
-(defvar pcl-cvs-load-hook nil
- "Run after loading pcl-cvs.")
-
(defvar cvs-mode-hook nil
"Run after `cvs-mode' was setup.")
(defconst cvs-vendor-branch "1.1.1"
"The default branch used by CVS for vendor code.")
-(defvar cvs-menu
- '("CVS"
- ["Open file.." cvs-mode-find-file t]
- [" ..other window" cvs-mode-find-file-other-window t]
- ["Interactive merge" cvs-mode-imerge t]
- ["Interactive diff" cvs-mode-idiff t]
- ["View diff" cvs-mode-diff (cvs-enabledp 'diff)]
- ["Diff with vendor" cvs-mode-diff-vendor t]
- ["Diff with backup" cvs-mode-diff-backup t]
- ["View log" cvs-mode-log t]
- ["View status" cvs-mode-status t]
- ["View tag tree" cvs-mode-tree t]
- "----"
- ["Insert" cvs-mode-insert]
- ["Update" cvs-mode-update (cvs-enabledp 'update)]
- ["Re-examine" cvs-mode-examine t]
- ["Commit" cvs-mode-commit-setup (cvs-enabledp 'commit)]
- ["Undo changes" cvs-mode-undo (cvs-enabledp 'undo)]
- ["Add" cvs-mode-add (cvs-enabledp 'add)]
- ["Remove" cvs-mode-remove (cvs-enabledp 'remove)]
- ["Ignore" cvs-mode-ignore (cvs-enabledp 'ignore)]
- ["Add ChangeLog" cvs-mode-add-change-log-entry-other-window t]
- "----"
- ["Mark all" cvs-mode-mark-all-files t]
- ["Unmark all" cvs-mode-unmark-all-files t]
- ["Hide handled" cvs-mode-remove-handled t]
- "----"
- ["Quit" cvs-mode-quit t]
- ))
-
(easy-mmode-defmap cvs-mode-diff-map
- '(("=" . cvs-mode-diff)
- ("b" . cvs-mode-diff-backup)
- ("2" . cvs-mode-idiff-other)
- ("h" . cvs-mode-diff-head)
- ("v" . cvs-mode-diff-vendor)
- ("?" . cvs-mode-diff-help)
- ("e" . cvs-mode-idiff)
- ("E" . cvs-mode-imerge))
- "Keymap for diff-related operations in `cvs-mode'.")
-;; This is necessary to allow correct handling of \\[cvs-mode-diff-map]
+ '(("E" "imerge" . cvs-mode-imerge)
+ ("=" . cvs-mode-diff)
+ ("e" "idiff" . cvs-mode-idiff)
+ ("2" "other" . cvs-mode-idiff-other)
+ ("d" "diff" . cvs-mode-diff)
+ ("b" "backup" . cvs-mode-diff-backup)
+ ("h" "head" . cvs-mode-diff-head)
+ ("r" "repository" . cvs-mode-diff-repository)
+ ("y" "yesterday" . cvs-mode-diff-yesterday)
+ ("v" "vendor" . cvs-mode-diff-vendor))
+ "Keymap for diff-related operations in `cvs-mode'."
+ :name "Diff")
+;; This is necessary to allow correct handling of \\[cvs-mode-diff-map]
;; in substitute-command-keys.
(fset 'cvs-mode-diff-map cvs-mode-diff-map)
(easy-mmode-defmap cvs-mode-map
;;(define-prefix-command 'cvs-mode-map-diff-prefix)
;;(define-prefix-command 'cvs-mode-map-control-c-prefix)
- `(;; simulate `suppress-keymap'
+ '(;; simulate `suppress-keymap'
(self-insert-command . undefined)
(("0" "1" "2" "3" "4" "5" "6" "7" "8" "9") . digit-argument)
("-" . negative-argument)
;; various
- (undo . cvs-mode-undo)
+ ;; (undo . cvs-mode-undo)
("?" . cvs-help)
("h" . cvs-help)
("q" . cvs-bury-buffer)
- ;;("Q" . kill-buffer)
+ ("z" . kill-this-buffer)
("F" . cvs-mode-set-flags)
- ("\M-f" . cvs-mode-force-command)
+ ;; ("\M-f" . cvs-mode-force-command)
+ ("!" . cvs-mode-force-command)
("\C-c\C-c" . cvs-mode-kill-process)
;; marking
("m" . cvs-mode-mark)
("M" . cvs-mode-mark-all-files)
+ ("S" . cvs-mode-mark-on-state)
("u" . cvs-mode-unmark)
("\C-?". cvs-mode-unmark-up)
("%" . cvs-mode-mark-matching-files)
("=" . cvs-mode-diff)
("d" . cvs-mode-diff-map)
;; keys that operate on individual files
- ("\C-k". cvs-mode-acknowledge)
+ ("\C-k" . cvs-mode-acknowledge)
("A" . cvs-mode-add-change-log-entry-other-window)
;;("B" . cvs-mode-byte-compile-files)
("C" . cvs-mode-commit-setup)
("c" . cvs-mode-commit)
("e" . cvs-mode-examine)
("f" . cvs-mode-find-file)
+ ("\C-m" . cvs-mode-find-file)
("i" . cvs-mode-ignore)
("l" . cvs-mode-log)
("o" . cvs-mode-find-file-other-window)
("r" . cvs-mode-remove)
("s" . cvs-mode-status)
("t" . cvs-mode-tag)
- ;;("v" . cvs-mode-diff-vendor)
+ ("v" . cvs-mode-view-file)
("x" . cvs-mode-remove-handled)
;; cvstree bindings
("+" . cvs-mode-tree)
;; mouse bindings
([mouse-2] . cvs-mode-find-file)
+ ([follow-link] . (lambda (pos)
+ (if (eq (get-char-property pos 'face) 'cvs-filename) t)))
([(down-mouse-3)] . cvs-menu)
+ ;; dired-like bindings
+ ("\C-o" . cvs-mode-display-file)
;; Emacs-21 toolbar
;;([tool-bar item1] . (menu-item "Examine" cvs-examine :image (image :file "/usr/share/icons/xpaint.xpm" :type xpm)))
;;([tool-bar item2] . (menu-item "Update" cvs-update :image (image :file "/usr/share/icons/mail1.xpm" :type xpm)))
(fset 'cvs-mode-map cvs-mode-map)
-;; add the cvs-menu to the map so it's added whenever we are in cvs-mode
-(when (ignore-errors (require 'easymenu))
- (easy-menu-define cvs-menu-map
- cvs-mode-map
- "Menu used in cvs-mode."
- cvs-menu))
+(easy-menu-define cvs-menu cvs-mode-map "Menu used in `cvs-mode'."
+ '("CVS"
+ ["Open file.." cvs-mode-find-file t]
+ [" ..other window" cvs-mode-find-file-other-window t]
+ ["Display in other window" cvs-mode-display-file t]
+ ["Interactive merge" cvs-mode-imerge t]
+ ("View diff"
+ ["Interactive diff" cvs-mode-idiff t]
+ ["Current diff" cvs-mode-diff t]
+ ["Diff with head" cvs-mode-diff-head t]
+ ["Diff with vendor" cvs-mode-diff-vendor t]
+ ["Diff with backup" cvs-mode-diff-backup t])
+ ["View log" cvs-mode-log t]
+ ["View status" cvs-mode-status t]
+ ["View tag tree" cvs-mode-tree t]
+ "----"
+ ["Insert" cvs-mode-insert]
+ ["Update" cvs-mode-update (cvs-enabledp 'update)]
+ ["Re-examine" cvs-mode-examine t]
+ ["Commit" cvs-mode-commit-setup (cvs-enabledp 'commit)]
+ ["Tag" cvs-mode-tag (cvs-enabledp (when cvs-force-dir-tag 'tag))]
+ ["Undo changes" cvs-mode-undo (cvs-enabledp 'undo)]
+ ["Add" cvs-mode-add (cvs-enabledp 'add)]
+ ["Remove" cvs-mode-remove (cvs-enabledp 'remove)]
+ ["Ignore" cvs-mode-ignore (cvs-enabledp 'ignore)]
+ ["Add ChangeLog" cvs-mode-add-change-log-entry-other-window t]
+ "----"
+ ["Mark" cvs-mode-mark t]
+ ["Mark all" cvs-mode-mark-all-files t]
+ ["Mark by regexp..." cvs-mode-mark-matching-files t]
+ ["Mark by state..." cvs-mode-mark-on-state t]
+ ["Unmark" cvs-mode-unmark t]
+ ["Unmark all" cvs-mode-unmark-all-files t]
+ ["Hide handled" cvs-mode-remove-handled t]
+ "----"
+ ["Quit" cvs-mode-quit t]))
-;;;;
+;;;;
;;;; CVS-Minor mode
-;;;;
+;;;;
(defcustom cvs-minor-mode-prefix "\C-xc"
"Prefix key for the `cvs-mode' bindings in `cvs-minor-mode'."
:group 'pcl-cvs)
(easy-mmode-defmap cvs-minor-mode-map
- `((,cvs-minor-mode-prefix . cvs-mode-map))
- "Keymap for `cvs-minor-mode', used in buffers related to pcl-cvs.")
+ `((,cvs-minor-mode-prefix . cvs-mode-map)
+ ("e" . (menu-item nil cvs-mode-edit-log
+ :filter (lambda (x) (if (derived-mode-p 'log-view-mode) x)))))
+ "Keymap for `cvs-minor-mode', used in buffers related to PCL-CVS.")
(defvar cvs-buffer nil
"(Buffer local) The *cvs* buffer associated with this buffer.")
(defconst cvs-pcl-cvs-dirchange-re "^pcl-cvs: descending directory \\(.*\\)$")
-;;;;
+;;;;
;;;; autoload the global menu
-;;;;
+;;;;
;;;###autoload
(defvar cvs-global-menu
(define-key m [examine]
'(menu-item "Examine Directory" cvs-examine
:help "Examine the current state of a workarea"))
- m))
+ (fset 'cvs-global-menu m)))
;; cvs-1.10 and above can take file arguments in other directories
Sadly, even with a new cvs executable, if you connect to an older cvs server
\(typically a cvs-1.9 on the server), the old restriction applies. In such
a case the sanity check made by pcl-cvs fails and you will have to manually
-set this variable to T (until the cvs server is upgraded).
+set this variable to t (until the cvs server is upgraded).
When the above problem occurs, pcl-cvs should (hopefully) catch cvs' error
message and replace it with a message tell you to change this variable.")
;;
(provide 'pcvs-defs)
-;;; pcl-cvs-defs.el ends here
+;; arch-tag: c7c701d0-d1d4-4aa9-a302-007bb03aca5e
+;;; pcvs-defs.el ends here