Mercurial > emacs
changeset 4063:cebb261b0f10
(vc-rcs-status): Include head version number in mode line if there
are no locks.
author | Paul Eggert <eggert@twinsun.com> |
---|---|
date | Mon, 12 Jul 1993 22:04:35 +0000 |
parents | d7f5f18ddbc5 |
children | d14ba65a1363 |
files | lisp/vc-hooks.el |
diffstat | 1 files changed, 21 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/vc-hooks.el Mon Jul 12 20:31:52 1993 +0000 +++ b/lisp/vc-hooks.el Mon Jul 12 22:04:35 1993 +0000 @@ -152,11 +152,11 @@ vc-type)) (defun vc-rcs-status (file) - ;; Return string " [LOCKER:REV]" if FILE under RCS control, otherwise nil, - ;; for placement in modeline by `vc-mode-line'. - - ;; If FILE is not locked then return just "". If the FILE is locked - ;; then return *all* the locks currently set, in a single string of the + ;; Return string for placement in modeline by `vc-mode-line'. + ;; If FILE is not registered under RCS, return nil. + ;; If FILE is registered but not locked, return " REV" if there is a head + ;; revision and " @@" otherwise. + ;; If FILE is locked then return all locks in a string of the ;; form " LOCKER1:REV1 LOCKER2:REV2 ...". ;; Algorithm: @@ -177,6 +177,7 @@ ;; The output doesn't show which version you are actually looking at. ;; The modeline can get quite cluttered when there are multiple locks. + ;; The head revision is probably not what you want if you've used `rcs -b'. (let ((master (vc-name file)) found) @@ -205,13 +206,21 @@ (if found ;; Clean control characters from text. - (let ((status - (save-restriction - (narrow-to-region (match-beginning 1) (match-end 1)) - (goto-char (point-min)) - (while (re-search-forward "[ \b\t\n\v\f\r]+" nil t) - (replace-match " " t t)) - (buffer-string)))) + (let* ((locks + (save-restriction + (narrow-to-region (match-beginning 1) (match-end 1)) + (goto-char (point-min)) + (while (re-search-forward "[ \b\t\n\v\f\r]+" nil t) + (replace-match " " t t)) + (buffer-string))) + (status + (if (not (string-equal locks "")) + locks + (goto-char (point-min)) + (if (looking-at "head[ \b\t\n\v\f\r]+\\([.0-9]+\\)") + (concat " " (buffer-substring (match-beginning 1) + (match-end 1))) + " @@")))) ;; Clean work buffer. (erase-buffer) (set-buffer-modified-p nil)