Mercurial > emacs
changeset 95441:3a41427d46d9
(vc-cvs-after-dir-status): Support spaces in file
names and improve support for unregistered files.
author | Dan Nicolaescu <dann@ics.uci.edu> |
---|---|
date | Sat, 31 May 2008 15:23:58 +0000 |
parents | dda7f7cce33d |
children | f3de1c31de14 |
files | lisp/ChangeLog lisp/vc-cvs.el |
diffstat | 2 files changed, 25 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat May 31 10:53:54 2008 +0000 +++ b/lisp/ChangeLog Sat May 31 15:23:58 2008 +0000 @@ -1,3 +1,8 @@ +2008-05-31 Dan Nicolaescu <dann@ics.uci.edu> + + * vc-cvs.el (vc-cvs-after-dir-status): Support spaces in file + names and improve support for unregistered files. + 2008-05-31 Glenn Morris <rgm@gnu.org> * Makefile.in (compile-last): Replace tr in `els' assignment with sed.
--- a/lisp/vc-cvs.el Sat May 31 10:53:54 2008 +0000 +++ b/lisp/vc-cvs.el Sat May 31 15:23:58 2008 +0000 @@ -842,7 +842,7 @@ (re-search-forward "\\(^=+\n\\([^=c?\n].*\n\\|\n\\)+\\)\\|\\(\\(^?? .*\n\\)+\\)\\|\\(^cvs status: Examining .*\n\\)" nil t) - ;; XXX: get rid of narrowing here. + ;; FIXME: get rid of narrowing here. (narrow-to-region (match-beginning 0) (match-end 0)) (goto-char (point-min)) ;; The subdir @@ -855,29 +855,25 @@ (push (list file 'unregistered) result) (forward-line 1)) ;; A file entry. - (when (re-search-forward "^File: " nil t) - (when (setq missing (looking-at "no file ")) - (goto-char (match-end 0))) - (cond - ((re-search-forward "\\=\\([^ \t]+\\)" nil t) - (setq file (file-relative-name - (expand-file-name (match-string 1) subdir))) - (if (not (re-search-forward "\\=[ \t]+Status: \\(.*\\)" nil t)) - (push (list file 'unregistered) result) - (setq status-str (match-string 1)) - (setq status - (cond - ((string-match "Up-to-date" status-str) 'up-to-date) - ((string-match "Locally Modified" status-str) 'edited) - ((string-match "Needs Merge" status-str) 'needs-merge) - ((string-match "Needs \\(Checkout\\|Patch\\)" status-str) - (if missing 'missing 'needs-update)) - ((string-match "Locally Added" status-str) 'added) - ((string-match "Locally Removed" status-str) 'removed) - ((string-match "File had conflicts " status-str) 'conflict) - (t 'edited))) - (unless (eq status 'up-to-date) - (push (list file status) result)))))) + (when (re-search-forward "^File: \\(no file \\)?\\(.*[^ \t]\\)[ \t]+Status: \\(.*\\)" nil t) + (setq missing (match-string 1)) + (setq file (file-relative-name + (expand-file-name (match-string 2) subdir))) + (setq status-str (match-string 3)) + (setq status + (cond + ((string-match "Up-to-date" status-str) 'up-to-date) + ((string-match "Locally Modified" status-str) 'edited) + ((string-match "Needs Merge" status-str) 'needs-merge) + ((string-match "Needs \\(Checkout\\|Patch\\)" status-str) + (if missing 'missing 'needs-update)) + ((string-match "Locally Added" status-str) 'added) + ((string-match "Locally Removed" status-str) 'removed) + ((string-match "File had conflicts " status-str) 'conflict) + ((string-match "Unknown" 'unregistered)) + (t 'edited))) + (unless (eq status 'up-to-date) + (push (list file status) result))) (goto-char (point-max)) (widen)) (funcall update-function result))