I've been playing around with pcl-cvs-2.9.7 and find that the ability
to tag an individual file or group of marked files is missing. The
patch below fixes the problem. (If it is intended that tagging
individual files is disallowed, the documentation should be fixed).
Here's a set of patches against 2.9.7 which fix a few little problems
and make pcl-cvs-2.9.7 work correctly in XEmacs-21.
Index: cvs-compat.el
===================================================================
RCS file: /spare/cvs/pcl-cvs-2.9.7/cvs-compat.el,v
retrieving revision 1.1
retrieving revision 1.3
diff -u -r1.1 -r1.3
--- cvs-compat.el 2000/02/14 22:27:23 1.1
+++ cvs-compat.el 2000/02/15 22:55:24 1.3
@@ -114,18 +114,6 @@
`(defvar ,sym (make-face ',sym) ,str)))
;;;;
-;;;; missing functions in XEmacs
-;;;;
-
-;; doesn't exist in XEmacs
-(unless (fboundp 'easy-mmode-define-minor-mode)
- (autoload 'easy-mmode-define-minor-mode "easy-mmode" nil nil 'macro))
-
-;; doesn't exist in XEmacs
-(when (fboundp 'temp-directory)
- (defvar temporary-file-directory (temp-directory)))
-
-;;;;
;;;; missing functions in Emacs
;;;;
Index: cvs-status.el
===================================================================
RCS file: /spare/cvs/pcl-cvs-2.9.7/cvs-status.el,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- cvs-status.el 2000/02/14 22:27:23 1.1
+++ cvs-status.el 2000/02/14 23:28:54 1.2
@@ -186,8 +186,8 @@
(if (stringp tag) tag
(let ((name (cvs-tag->name tag))
(vl (cvs-tag->vlist tag)))
- (if (null name) (mapconcat 'identity vl ".")
- (let ((rev (if vl (concat " (" (mapconcat 'identity vl ".") ")") "")))
+ (if (null name) (mapconcat 'int-to-string vl ".")
+ (let ((rev (if vl (concat " (" (mapconcat 'int-to-string vl ".") ")") "")))
(if (consp name) (mapcar (lambda (name) (concat name rev)) name)
(concat name rev)))))))
@@ -463,7 +463,7 @@
(ps prev (cdr ps))
(as after (cdr as)))
((and (null as) (null vs) (null ps))
- (let ((revname (mapconcat 'identity vlist ".")))
+ (let ((revname (mapconcat 'int-to-string vlist ".")))
(if (every 'identity (cvs-map 'equal prev vlist))
(insert (make-string (+ 4 (length revname)) ? )
(or (cvs-tag->name tag) ""))
Index: pcl-cvs-info.el
===================================================================
RCS file: /spare/cvs/pcl-cvs-2.9.7/pcl-cvs-info.el,v
retrieving revision 1.1
diff -u -r1.1 pcl-cvs-info.el
--- pcl-cvs-info.el 2000/02/14 22:27:23 1.1
+++ pcl-cvs-info.el 2000/02/15 22:55:26
@@ -314,7 +314,7 @@
(defconst cvs-states
`((NEED-UPDATE update diff)
- (UP-TO-DATE update nil remove diff safe-rm revert)
+ (UP-TO-DATE update nil remove diff safe-rm revert tag)
(MODIFIED update commit undo remove diff merge diff-base)
(ADDED update commit remove)
(MISSING remove undo update safe-rm revert)
Index: pcl-cvs.el
===================================================================
RCS file: /spare/cvs/pcl-cvs-2.9.7/pcl-cvs.el,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- pcl-cvs.el 2000/02/14 22:27:23 1.1
+++ pcl-cvs.el 2000/02/14 23:14:37 1.2
@@ -65,6 +65,7 @@
(require 'pcl-cvs-util)
(require 'pcl-cvs-parse)
(require 'pcl-cvs-info)
+(require 'cvs-edit)
;;;;
@@ -275,15 +276,38 @@
;;;;
-(easy-mmode-define-minor-mode
- cvs-minor-mode
- "
+;;; XEmacs change
+(if (null (boundp 'running-xemacs))
+ (defvar running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)))
+
+(if running-xemacs
+ (progn
+ (defvar cvs-minor-mode nil
+ "Non-nil when cvs mode is active.")
+ (defun cvs-minor-mode (arg)
+ "Toggle cvs-minor-mode.
+With ARG, turn cvs-minor-mode on if arg is positive, off otherwise.
This mode is used for buffers related to a main *cvs* buffer.
All the `cvs-mode' buffer operations are simply rebound under
the \\[cvs-mode-map] prefix.
"
- nil " CVS")
-(put 'cvs-minor-mode 'permanent-local t)
+ (interactive "P")
+ (make-local-variable 'cvs-minor-mode)
+ (setq cvs-minor-mode
+ (if (null arg)
+ (not cvs-minor-mode)
+ (> (prefix-numeric-value arg) 0)))
+ (redraw-modeline)
+ (add-minor-mode 'cvs-minor-mode " CVS")))
+
+ (easy-mmode-define-minor-mode
+ cvs-minor-mode
+ "This mode is used for buffers related to a main *cvs* buffer.
+All the `cvs-mode' buffer operations are simply rebound under
+the \\[cvs-mode-map] prefix.
+"
+ nil " CVS")
+ (put 'cvs-minor-mode 'permanent-local t))
(defvar cvs-temp-buffers nil)
@@ -1216,6 +1240,8 @@
"cvs-mode-insert")))
(cvs-mode-run "status" (cvs-flags-query 'cvs-status-flags nil 'noquery)
(list fi) :dont-change-disc t)))))
+
+(eval-when-compile (autoload 'cvs-edit-mode "cvs-edit"))
(defun cvs-mode-commit ()
"Check in all marked files, or the current file.