;;; pcvs-defs.el --- variable definitions for PCL-CVS
-;; Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2003
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+;; 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-;; Author: Stefan Monnier <monnier@cs.yale.edu>
+;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
;; Keywords: pcl-cvs
;; 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:
"*Name or full path of the cvs executable.")
(defvar cvs-version
+ ;; With the divergence of the CVSNT codebase and version numbers, this is
+ ;; not really good any more.
(ignore-errors
(with-temp-buffer
(call-process cvs-program nil t nil "-v")
(goto-char (point-min))
- (when (re-search-forward "(CVS) \\([0-9]+\\)\\.\\([0-9]+\\)" nil t)
+ (when (re-search-forward "(CVS\\(NT\\)?) \\([0-9]+\\)\\.\\([0-9]+\\)"
+ nil t)
(cons (string-to-number (match-string 1))
(string-to-number (match-string 2))))))
"*Version of `cvs' installed on your system.
This expression will be evaluated in an environment where DIR is set to
the directory name of the cvs buffer.")
-(defvar cvs-temp-buffer-name '(expand-file-name " *cvs-tmp*" dir)
+(defvar cvs-temp-buffer-name
+ ;; Was '(expand-file-name " *cvs-tmp*" dir), but that causes them to
+ ;; become non-hidden if uniquification is done `forward'.
+ " *cvs-tmp*"
"*Name of the cvs temporary buffer.
Output from cvs is placed here for asynchronous commands.")
: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.")
("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")
("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)
["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]
"----"
;; cvs-1.10 and above can take file arguments in other directories
;; while others need to be executed once per directory
(defvar cvs-execute-single-dir
- (if (and (consp cvs-version)
- (or (>= (cdr cvs-version) 10) (> (car cvs-version) 1)))
+ (if (or (null cvs-version)
+ (or (>= (cdr cvs-version) 10) (> (car cvs-version) 1)))
+ ;; Supposedly some recent versions of CVS output some directory info
+ ;; as they recurse downthe tree, but it's not good enough in the case
+ ;; where we run "cvs status foo bar/foo".
'("status")
t)
"Whether cvs commands should be executed a directory at a time.
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).
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.")
+message and replace it with a message telling you to change this variable.")
;;
(provide 'pcvs-defs)
+;; arch-tag: c7c701d0-d1d4-4aa9-a302-007bb03aca5e
;;; pcvs-defs.el ends here