]> git.eshelyaron.com Git - emacs.git/commitdiff
VC: CVS: Fix parsing of 'cvs -qn update' for missing files for 1.12
authorOlivier Certner <olce.emacs@certner.fr>
Thu, 6 Apr 2023 08:52:23 +0000 (10:52 +0200)
committerDmitry Gutov <dmitry@gutov.dev>
Wed, 19 Apr 2023 00:47:20 +0000 (03:47 +0300)
* lisp/vc/vc-cvs.el (vc-cvs-after-dir-status): Fix the name reported
for missing files in the case of CVS 1.12.3+ where name is quoted in
the warning line (it was not before this version).  Use instead the
following U line, where the name is never quoted on all versions.

lisp/vc/vc-cvs.el

index b826390a03458c9a02dbc51f1bbeeef26389893e..c6056c1e5bdda8021374a87812f1585d12e23a24 100644 (file)
@@ -1029,13 +1029,16 @@ state."
                       (cdr (assoc (char-after) translation)))
                 result)
         (cond
-         ((looking-at "cvs update: warning: \\(.*\\) was lost")
+         ((looking-at "cvs update: warning: .* was lost")
           ;; Format is:
           ;; cvs update: warning: FILENAME was lost
           ;; U FILENAME
-          (push (list (match-string 1) 'missing) result)
-          ;; Skip the "U" line
-          (forward-line 1))
+          ;; with FILENAME in the first line possibly enclosed in
+          ;; quotes (since CVS 1.12.3). To avoid problems, use the U
+          ;; line where name is never quoted.
+          (forward-line 1)
+          (when (looking-at "^U \\(.*\\)$")
+            (push (list (match-string 1) 'missing) result)))
          ((looking-at "cvs update: New directory `\\(.*\\)' -- ignored")
           (push (list (match-string 1) 'unregistered) result))))
       (forward-line 1))