Subject: Re: bug#4599: 23.1.50; VC (CVS) fails to show directory status

From: Dan Nicolaescu <[email-masked]>
Date: Wed, 30 Sep 2009 09:53:58 -0700 (PDT)

Tim Van Holder <[email-masked]> writes:

  > As of this morning's CVS build, C-x v d for a CVS-controlled directory
  > results in the following error message, leaving the message line with
  > the [waiting] marker:
  > 
  > error in process sentinel: Wrong type argument: arrayp, nil
  > 
  > *Messages* also has
  > 
  > error in process sentinel: vc-dir-node-directory: Wrong type argument: arrayp, nil

I can't try this at the moment, but I am pretty sure that this change is to blame:

+2009-09-29  Stefan Monnier  <address@hidden>
+
+       * vc-hooks.el (vc-dir-buffers): New var.
+       (vc-state-refresh): New function.
+       (vc-state): Use it.
+       (vc-after-save): Always ask the backend to recompute the new state.
+       Always call vc-dir if necessary, using vc-dir-buffers.
+       * vc-dir.el (vc-dir-prepare-status-buffer, vc-dir-resynch-file):
+       Use vc-dir-buffers.
+       (vc-dir-mode): Use vc-dir-buffers rather than after-save-hook.
+       (vc-dir-prepare-status-buffer, vc-dir-update)
+       (vc-dir-resync-directory-files, vc-dir-resynch-file, vc-dir-mode):
+       Don't call expand-file-name on default-directory.

in particular the removal or the expand-file-name calls is incorrect.
At least ~ needs to be expanded, otherwise things just do not work.