;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
;; Maintainer: Andre Spiegel <spiegel@inf.fu-berlin.de>
-;; $Id: vc-hooks.el,v 1.112 1998/09/14 17:26:39 fx Exp kwzh $
+;; $Id: vc-hooks.el,v 1.1 2000/01/10 13:25:12 gerd Exp gerd $
;; This file is part of GNU Emacs.
;; number of the subexpression that should be returned. If there's
;; a third element (also the number of a subexpression), that
;; subexpression is assumed to be a date field and we want the most
- ;; recent entry matching the template.
+ ;; recent entry matching the template; this works for RCS format dates only.
;; If FILE and PROPERTIES are given, the latter must be a list of
;; properties of the same length as PATTERNS; each property is assigned
;; the corresponding value.
(let ((latest-date "") (latest-val))
(while (re-search-forward (car p) nil t)
(let ((date (vc-match-substring (elt p 2))))
+ ;; Most (but not all) versions of RCS use two-digit years
+ ;; to represent dates in the range 1900 through 1999.
+ ;; The two-digit and four-digit notations can both appear
+ ;; in the same file. Normalize the two-digit versions.
+ (save-match-data
+ (if (string-match "\\`[0-9][0-9]\\." date)
+ (setq date (concat "19" date))))
(if (string< latest-date date)
(progn
(setq latest-date date)
(file-directory-p (concat dirname "CVS/"))
(file-readable-p (concat dirname "CVS/Entries")))
(let ((file (concat dirname basename))
- ;; make sure that the file name is searched
- ;; case-sensitively
- (case-fold-search nil)
buffer)
(unwind-protect
(save-excursion
(setq buffer (set-buffer (get-buffer-create "*vc-info*")))
(vc-insert-file (concat dirname "CVS/Entries"))
(goto-char (point-min))
+ ;; make sure that the file name is searched
+ ;; case-sensitively - case-fold-search is a buffer-local
+ ;; variable, so setting it here won't affect any other buffers
+ (setq case-fold-search nil)
(cond
;; entry for a "locally added" file (not yet committed)
((re-search-forward