Subject: bug#3261: closed (Re: 23.0.93; minor vc-dir initialization bug)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 04 Mar 2011 05:18:02 +0000

Your bug report

#3261: 23.0.93; minor vc-dir initialization bug 

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
3261: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3261
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: 23.0.93; minor vc-dir initialization bug
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Fri, 04 Mar 2011 00:16:59 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

Version: 24.1

Applied; except "the convention is that error messages start with a
capital letter but *do not* end with a period".

Subject: 23.0.93; minor vc-dir initialization bug
From: Bob Rogers <[email-masked]>
To: [email-masked]
Date: Mon, 11 May 2009 22:30:07 -0400 (EDT)

   To reproduce in Emacs trunk (as of Friday):

   1.  "emacs -Q" in a VC directory, preferably one in which updates
take more than a few seconds (large tree, distant/slow server, or both).

   2.  "C-x v d" to get into the *vc-dir* buffer, and *immediately* type
"n" (vc-dir-next-line) before the buffer has any file lines.

   This gives me a "wrong type argument" error (backtrace below) when
ewoc-goto-node tries to treat "nil" as a node.  The tweak to
ewoc-goto-next (below the backtrace) produces a better error message,
but is still too generic.

					-- Bob Rogers
					   http://www.rgrjr.com/

========================================================================

Backtrace:

Debugger entered--Lisp error: (wrong-type-argument arrayp nil)
  ewoc-goto-node([cl-struct-ewoc #<buffer *vc-dir*> (lambda (&rest --cl-rest--) (apply #[... "J	!=3fff88=3fffc2c=3fff87" [G39800 data "\n"] 2] ... --cl-rest--)) [[[#1 #2 "" #<marker at 114 in *vc-dir*>] #1 DL-LIST #<marker at 115 in *vc-dir*>] [#1 [#2 #1 DL-LIST #<marker at 115 in *vc-dir*>] "" #<marker at 114 in *vc-dir*>] #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<marker at 1 in *vc-dir*>] [[[#1 #2 DL-LIST #<marker at 115 in *vc-dir*>] #1 #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<marker at 1 in *vc-dir*>] [#1 [#2 #1 #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<m
 arker at 1 in *vc-dir*>] DL-LIST #<marker at 115 in *vc-dir*>] "" #<marker at 114 in *vc-dir*>] [[[#1 #2 #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<marker at 1 in *vc-dir*>] #1 "" #<marker at 114 in *vc-dir*>] [#1 [#2 #1 "" #<marker at 114 in *vc-dir*>] #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<marker at 1 in *vc-dir*>] DL-LIST #<marker at 115 in *vc-dir*>] nil (lambda (&rest --cl-rest--) (apply #[... "J	!=3fff88=3fffc2c=3fff87" [G39800 data "\n"] 2] ... --cl-rest--))] nil)
  ewoc-goto-next([cl-struct-ewoc #<buffer *vc-dir*> (lambda (&rest --cl-rest--) (apply #[... "J	!=3fff88=3fffc2c=3fff87" [G39800 data "\n"] 2] ... --cl-rest--)) [[[#1 #2 "" #<marker at 114 in *vc-dir*>] #1 DL-LIST #<marker at 115 in *vc-dir*>] [#1 [#2 #1 DL-LIST #<marker at 115 in *vc-dir*>] "" #<marker at 114 in *vc-dir*>] #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<marker at 1 in *vc-dir*>] [[[#1 #2 DL-LIST #<marker at 115 in *vc-dir*>] #1 #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<marker at 1 in *vc-dir*>] [#1 [#2 #1 #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<m
 arker at 1 in *vc-dir*>] DL-LIST #<marker at 115 in *vc-dir*>] "" #<marker at 114 in *vc-dir*>] [[[#1 #2 #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<marker at 1 in *vc-dir*>] #1 "" #<marker at 114 in *vc-dir*>] [#1 [#2 #1 "" #<marker at 114 in *vc-dir*>] #("VC backend : SVN\nWorking dir: /shared.local/mgi/modest/\nRepository : https://www.modulargenetics.com/svn/modest\n" 0 13 ... 13 17 ... 17 30 ... 30 56 ... 56 69 ... 69 111 ...) #<marker at 1 in *vc-dir*>] DL-LIST #<marker at 115 in *vc-dir*>] nil (lambda (&rest --cl-rest--) (apply #[... "J	!=3fff88=3fffc2c=3fff87" [G39800 data "\n"] 2] ... --cl-rest--))] 1)
  vc-dir-next-line(1)
  call-interactively(vc-dir-next-line nil nil)

===================================================================
Patch:
RCS file: /sources/emacs/emacs/lisp/emacs-lisp/ewoc.el,v
retrieving revision 1.47
diff -u -r1.47 ewoc.el
--- lisp/emacs-lisp/ewoc.el	5 Jan 2009 03:21:00 -0000	1.47
+++ lisp/emacs-lisp/ewoc.el	12 May 2009 02:21:47 -0000
@@ -496,6 +496,8 @@
     ;; Never step below the first element.
     ;; (unless (ewoc--filter-hf-nodes ewoc node)
     ;;   (setq node (ewoc--node-nth dll -2)))
+    (unless node
+      (error "No next."))
     (ewoc-goto-node ewoc node)))
 
 (defun ewoc-goto-node (ewoc node)
========================================================================

In GNU Emacs 23.0.93.1 (i686-pc-linux-gnu, GTK+ Version 2.12.9)
 of 2009-05-08 on rgr
Windowing system distributor `The X.Org Foundation', version 11.0.10400090
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t