Ville,
I finally have gotten around to trying out the new vc. Looks very
cool, especially git support! Haven't got very far with using it yet
(see BTW below), but there are some issues. I supply a patch, but
it's more in the line of "for discussion" than a serious proposal.
First, the menubar menu in vc-hooks.el is a GNU-style menubar, ie, a
keymap with random keysyms. We don't support that (and won't). Needs
to be ported, for now I've just disabled it in the attached patch.
There are a bunch of compiler warnings. Some are fixable with
additional requires or autoloads, others I've wrapped in `if-boundp'
et amici. 21.4 doesn't have the if-boundp suite yet AFAIK, but Ben
claimed that they are not dependent on anything in 21.5, so I plan to
break out a compatibility library. (To go in xemacs-base, I think --
everybody should be able to compile, this is Emacs!)
Finally, part of the problem with faces in smerge-mode (at least) is
that GNU's Customize facility apparently defines a refinement of the
'color device-type: you can insist on a minimum number of colors (88
in the case of smerge). We don't support that, and I think defface
basically just ignores those specs. Needs a port, for now I'm just
leaving it as is.
BTW, my department has conducted one of the worst-managed system
upgrades I've seen (though it's an improvement on the last one!!), and
my mail isn't flowing yet. So don't expect any quick responses to
mail. ;-)
Steve
cvs server: Diffing unsupported/scop/vc
Index: unsupported/scop/vc/vc-hooks.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/unsupported/scop/vc/vc-hooks.el,v
retrieving revision 1.12
diff -u -r1.12 vc-hooks.el
--- unsupported/scop/vc/vc-hooks.el 4 Jul 2006 21:52:23 -0000 1.12
+++ unsupported/scop/vc/vc-hooks.el 25 Aug 2006 05:17:31 -0000
@@ -425,6 +425,9 @@
(defun vc-user-login-name (file)
"Return the name under which the user accesses the given FILE."
(or (and (eq (string-match tramp-file-name-regexp file) 0)
+ ;; XEmacs change - we don't have process-file
+ ;; don't with-fboundp - the bytecomp warning means a real bug
+ (error 'unimplemented 'process-file)
;; tramp case: execute "whoami" via tramp
(let ((default-directory (file-name-directory file)))
(with-temp-buffer
@@ -536,6 +539,7 @@
(vc-file-setprop file 'vc-workfile-version
(vc-call workfile-version file)))))
+;;;###autoload
(defun vc-default-registered (backend file)
"Check if FILE is registered in BACKEND using vc-BACKEND-master-templates."
(let ((sym (vc-make-backend-sym backend 'master-templates)))
@@ -614,7 +618,7 @@
If you bind this function to \\[toggle-read-only], then Emacs checks files
in or out whenever you toggle the read-only flag."
(interactive "P")
- (if (or (and (boundp 'vc-dired-mode) vc-dired-mode)
+ (if (or (if-boundp 'vc-dired-mode vc-dired-mode) ; XEmacs change
;; use boundp because vc.el might not be loaded
(vc-backend buffer-file-name))
(vc-next-action verbose)
@@ -654,8 +658,8 @@
(defun vc-make-version-backup (file)
"Make a backup copy of FILE, which is assumed in sync with the repository.
Before doing that, check if there are any old backups and get rid of them."
- (unless (and (fboundp 'msdos-long-file-names)
- (not (with-no-warnings (msdos-long-file-names))))
+ (unless (if-fboundp 'msdos-long-file-names ; XEmacs change
+ (not (with-no-warnings (msdos-long-file-names))))
(vc-delete-automatic-version-backups file)
(condition-case nil
(copy-file file (vc-version-backup-file-name file)
@@ -700,7 +704,8 @@
(if (featurep 'vc)
;; If VC is not loaded, then there can't be
;; any VC Dired buffer to synchronize.
- (vc-dired-resynch-file file)))))
+ (declare-fboundp ; XEmacs change
+ (vc-dired-resynch-file file))))))
;; XEmacs addition, used in vc-mode-line
(defvar vc-mode-ext (make-extent nil nil))
@@ -894,10 +899,12 @@
(fset 'vc-prefix-map vc-prefix-map)
(define-key global-map "\C-xv" 'vc-prefix-map)
-(if (not (boundp 'vc-menu-map))
- ;; Don't do the menu bindings if menu-bar.el wasn't loaded to defvar
+;; Garf - GNU menubar #### port this!!
+(unless (featurep 'xemacs)
+(if-boundp 'vc-menu-map ; XEmacs change
+ ;; Do the menu bindings only if menu-bar.el was loaded to defvar
;; vc-menu-map.
- ()
+ ;; XEmacs - keep whitespace same as upstream - BEGIN PRESERVE WHITESPACE
;;(define-key vc-menu-map [show-files]
;; '("Show Files under VC" . (vc-directory t)))
(define-key vc-menu-map [vc-retrieve-snapshot]
@@ -924,6 +931,8 @@
'("Update to Latest Version" . vc-update))
(define-key vc-menu-map [vc-next-action] '("Check In/Out" . vc-next-action))
(define-key vc-menu-map [vc-register] '("Register" . vc-register)))
+ ;; XEmacs - keep whitespace same as upstream - END PRESERVE WHITESPACE
+)
;; These are not correct and it's not currently clear how doing it
;; better (with more complicated expressions) might slow things down
Index: unsupported/scop/vc/vc.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/packages/unsupported/scop/vc/vc.el,v
retrieving revision 1.35
diff -u -r1.35 vc.el
--- unsupported/scop/vc/vc.el 16 Aug 2006 20:44:35 -0000 1.35
+++ unsupported/scop/vc/vc.el 25 Aug 2006 05:17:33 -0000
@@ -451,7 +451,9 @@
(require 'vc-hooks)
(require 'ring)
-(require 'vc-xemacs) ; XEmacs compatiblity stuff
+(require 'add-log) ; XEmacs - for user id variables
+(require 'vc-xemacs) ; XEmacs compatiblity stuff
+
(eval-when-compile
(require 'cl)
(require 'compile)