emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/vc-cvs.el,v


From: Dan Nicolaescu
Subject: [Emacs-diffs] Changes to emacs/lisp/vc-cvs.el,v
Date: Mon, 06 Oct 2008 05:30:36 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Dan Nicolaescu <dann>   08/10/06 05:30:34

Index: vc-cvs.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/vc-cvs.el,v
retrieving revision 1.150
retrieving revision 1.151
diff -u -b -r1.150 -r1.151
--- vc-cvs.el   4 Oct 2008 19:54:48 -0000       1.150
+++ vc-cvs.el   6 Oct 2008 05:30:34 -0000       1.151
@@ -830,13 +830,14 @@
        (file nil)
        (result nil)
        (missing nil)
+       (ignore-next nil)
        (subdir default-directory))
     (goto-char (point-min))
     (while
        ;; Look for either a file entry, an unregistered file, or a
        ;; directory change.
        (re-search-forward
-        "\\(^=+\n\\([^=c?\n].*\n\\|\n\\)+\\)\\|\\(\\(^?? .*\n\\)+\\)\\|\\(^cvs 
status: Examining .*\n\\)"
+        "\\(^=+\n\\([^=c?\n].*\n\\|\n\\)+\\)\\|\\(\\(^?? .*\n\\)+\\)\\|\\(^cvs 
status: \\(Examining\\|nothing\\) .*\n\\)"
         nil t)
       ;; FIXME: get rid of narrowing here.
       (narrow-to-region (match-beginning 0) (match-end 0))
@@ -850,6 +851,21 @@
                    (expand-file-name (match-string 1) subdir)))
        (push (list file 'unregistered) result)
        (forward-line 1))
+      (when (looking-at "cvs status: nothing known about")
+       ;; We asked about a non existent file.  The output looks like this:
+
+       ;; cvs status: nothing known about `lisp/v.diff'
+       ;; ===================================================================
+       ;; File: no file v.diff            Status: Unknown
+       ;;
+       ;;    Working revision:    No entry for v.diff
+       ;;    Repository revision: No revision control file
+       ;;
+
+       ;; Due to narrowing in this iteration we only see the "cvs
+       ;; status:" line, so just set a flag so that we can ignore the
+       ;; file in the next iteration.
+       (setq ignore-next t))
       ;; A file entry.
       (when (re-search-forward "^File: \\(no file \\)?\\(.*[^ \t]\\)[ 
\t]+Status: \\(.*\\)" nil t)
        (setq missing (match-string 1))
@@ -868,8 +884,10 @@
               ((string-match "File had conflicts " status-str) 'conflict)
               ((string-match "Unknown" status-str) 'unregistered)
               (t 'edited)))
+       (if ignore-next
+           (setq ignore-next nil)
        (unless (eq status 'up-to-date)
-         (push (list file status) result)))
+           (push (list file status) result))))
       (goto-char (point-max))
       (widen))
     (funcall update-function result))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]