Subject: bug#191: 23.0.60; vc (CVS backend): vc-directory is broken

From: Tim Van Holder <[email-masked]>
Date: Mon, 05 May 2008 13:13:20 +0200

In a CVS HEAD build, C-x v d yields

error in process sentinel: Wrong type argument: listp, ".gdbinit"

A backtrace shows (with some dir & file names changed, so buffer
positions might show discrepancies):

Debugger entered--Lisp error: (wrong-type-argument listp ".gdbinit")
  vc-default-status-printer(CVS ".gdbinit")
  apply(vc-default-status-printer CVS ".gdbinit")
  vc-call-backend(CVS status-printer ".gdbinit")
  vc-generic-status-printer((".gdbinit" edited nil nil nil nil))
  #[(G52601 data) "<byte-code>" [G52601 data "\n"] 2](--ewoc--user-pp-- (".gdbinit" edited nil nil nil nil))
  apply(#[(G52601 data) "<byte-code>" [G52601 data "\n"] 2] --ewoc--user-pp-- (".gdbinit" edited nil nil nil nil))
  (lambda (&rest --cl-rest--) (apply #[... "<byte-code>" [G52601 data "\n"] 2] (quote --ewoc--user-pp--) --cl-rest--))((".gdbinit" edited nil nil nil nil))
  ewoc--refresh-node((lambda (&rest --cl-rest--) (apply #[... "<byte-code>" [G52601 data "\n"] 2] (quote --ewoc--user-pp--) --cl-rest--)) [[[[#0 #2 "" #<marker at 186 in *vc-dir*>] #1 DL-LIST #<marker at 187 in *vc-dir*>] #0 #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] [#0 [#1 [#2 #0 #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] DL-LIST #<marker at 187 in *vc-dir*>] "" #<marker at 186 in *vc-dir*>] (".gdbinit" edited nil nil nil nil) #<marker at 186 in *vc-dir*>] [[[[#0 #2 #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] #1 ... #<marker at 186 in *vc-dir*>] #0 "" #<marker at 186 in *vc-dir*>] [#0 [#1 [#2 #0 "" #<marker at 186 in *vc-dir*>] ... #<marker at 186 in *vc-dir*>] #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] DL-LIST #<marker at 187 in *vc-dir*>])
  ewoc-invalidate([cl-struct-ewoc #<buffer *vc-dir*> (lambda (&rest --cl-rest--) (apply #[... "<byte-code>" [G52601 data "\n"] 2] ... --cl-rest--)) [[[[#1 #3 ... #<marker at 186 in *vc-dir*>] #2 "" #<marker at 186 in *vc-dir*>] #1 DL-LIST #<marker at 187 in *vc-dir*>] [#1 [#2 [#3 #1 DL-LIST #<marker at 187 in *vc-dir*>] "" #<marker at 186 in *vc-dir*>] ... #<marker at 186 in *vc-dir*>] #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] [[[[#1 #3 DL-LIST #<marker at 187 in *vc-dir*>] #2 #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] #1 ... #<marker at 186 in *vc-dir*>] [#1 [#2 [#3 #1 ... #<marker at 186 in *vc-dir*>] #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] DL-LIST #<marker at 187 in *vc-dir*>] "" #<marker at 186 in *vc-dir*>] [[[[#1 #3 #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] #2 ... #<marker at 186 in *vc-dir*>] #1 "" #<marker at 186 in *vc-dir*>] [#1 [#2 [#3 #1 "" #<marker at 186 in *vc-dir*>] ... #<marker at 186 in *vc-dir*>] #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] DL-LIST #<marker at 187 in *vc-dir*>] nil (lambda (&rest --cl-rest--) (apply #[... "<byte-code>" [G52601 data "\n"] 2] ... --cl-rest--))] [[[[#0 #2 "" #<marker at 186 in *vc-dir*>] #1 DL-LIST #<marker at 187 in *vc-dir*>] #0 #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] [#0 [#1 [#2 #0 #("VC backend : CVS\nWorking dir: /blah\nModule     : ADD CODE TO PRINT THE MODULE\nRepository : ADD CODE TO PRINT THE REPOSITORY\nBranch     : ADD CODE TO PRINT THE BRANCH NAME\n\n" 0 13 ... 13 17 ... 17 30 ... 30 48 ... 48 61 ... 61 90 ... 90 103 ... 103 136 ... 136 149 ... 149 183 ...) #<marker at 1 in *vc-dir*>] DL-LIST #<marker at 187 in *vc-dir*>] "" #<marker at 186 in *vc-dir*>] (".gdbinit" edited nil nil nil nil) #<marker at 186 in *vc-dir*>])
  vc-dir-update(((".gdbinit" edited) ("foo1" unregistered) ("foo2" unregistered) ("foo3" unregistered) ("foo4" unregistered)) #<buffer *vc-dir*>)
  #[(G52602 entries &optional more-to-come) "<byte-code>" [G52602 entries more-to-come vc-ewoc remaining mode-line-process vc-dir-update ewoc-collect vc-dir-fileinfo->needs-update vc-dir-refresh-files mapcar vc-dir-fileinfo->name up-to-date nil] 5](--buffer-- ((".gdbinit" edited) ("foo1" unregistered) ("foo2" unregistered) ("foo3" unregistered) ("foo4" unregistered)))
  apply(#[(G52602 entries &optional more-to-come) "<byte-code>" [G52602 entries more-to-come vc-ewoc remaining mode-line-process vc-dir-update ewoc-collect vc-dir-fileinfo->needs-update vc-dir-refresh-files mapcar vc-dir-fileinfo->name up-to-date nil] 5] --buffer-- ((".gdbinit" edited) ("foo1" unregistered) ("foo2" unregistered) ("foo3" unregistered) ("foo4" unregistered)))
  (lambda (&rest --cl-rest--) (apply #[... "<byte-code>" [G52602 entries more-to-come vc-ewoc remaining mode-line-process vc-dir-update ewoc-collect vc-dir-fileinfo->needs-update vc-dir-refresh-files mapcar vc-dir-fileinfo->name up-to-date nil] 5] (quote --buffer--) --cl-rest--))(((".gdbinit" edited) ("foo1" unregistered) ("foo2" unregistered) ("foo3" unregistered) ("foo4" unregistered)))
  vc-cvs-after-dir-status((lambda (&rest --cl-rest--) (apply #[... "<byte-code>" [G52602 entries more-to-come vc-ewoc remaining mode-line-process vc-dir-update ewoc-collect vc-dir-fileinfo->needs-update vc-dir-refresh-files mapcar vc-dir-fileinfo->name up-to-date nil] 5] (quote --buffer--) --cl-rest--)))
  eval((vc-cvs-after-dir-status (quote (lambda ... ...))))
  vc-exec-after((vc-cvs-after-dir-status (quote (lambda ... ...))))
  vc-process-sentinel(#<process cvs> "finished\n")