Subject: bug#16235: closed (Re: bug#16235: 24.3.50; `dired-uncache' when tried `dired-do-chmod': (wrong-type-argument stringp nil))

From: [email-masked] (GNU bug Tracking System)
Date: Wed, 05 Feb 2014 22:25:03 +0000

Your bug report

#16235: 24.3.50; `dired-uncache' when tried `dired-do-chmod': (wrong-type-argument stringp nil)

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].

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

Subject: Re: bug#16235: 24.3.50; `dired-uncache' when tried `dired-do-chmod': (wrong-type-argument stringp nil)
From: Glenn Morris <[email-masked]>
To: [email-masked]
Date: Wed, 05 Feb 2014 17:24:40 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

It's an internal variable, it should not be nil, since you can't say or
repeat how it came to be nil, nothing can be done.

Subject: 24.3.50; `dired-uncache' when tried `dired-do-chmod': (wrong-type-argument stringp nil)
From: Drew Adams <[email-masked]>
To: [email-masked]
Date: Mon, 23 Dec 2013 20:43:35 -0800 (PST)
List-Id: <debbugs-submit.debbugs.gnu.org>

This was from my setup, not emacs -Q.

I used `M' in Dired, and entered "a-w" as the argument, then OK'd
modifying the marked files.  I got this backtrace:

Debugger entered--Lisp error: (wrong-type-argument stringp nil)
  find-file-name-handler(nil dired-uncache)
  dired-uncache(nil)
  dired-do-redisplay(nil)
  dired-do-chmod(nil)
  call-interactively(dired-do-chmod nil nil)
  command-execute(dired-do-chmod)

None of the functions listed in the backtrace are from my code; all are
the vanilla versions.

However, this happened only once.  I could not reproduce it thereafter,
in either my setup or emacs -Q.  If it helps somehow, fine.  If not,
feel free to close it.

Looking at the code for `dired-do-redisplay', it seems that when I
invoked `dired-do-chmod' (in Dired, of course) the value of
`dired-directory' was nil.

The doc string for `dired-directory' does not describe any situation in
which it can be or should be nil.  It says only that the value is a
string or a non-empty list.

Is the doc string incomplete?  Is it a bug that somehow it had the value
nil (in Dired)?  Nil is the default value.  And thatit seems to be the
value of the variable in any non-Dired buffer.

I would think that, at the very least:

1. The doc string should mention what a nil value means.
2. The code should check that the variable is non-nil, and provide a
   better error message for the nil case than just wrong-type-argument.

`dired-directory' is not mentioned in the Elisp manual.

In GNU Emacs 24.3.50.1 (i686-pc-mingw32)
 of 2013-12-22 on ODIEONE
Bzr revision: 115700 [email-masked]
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/Devel/emacs/binary --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3' CPPFLAGS=-Ic:/Devel/emacs/include
 LDFLAGS=-Lc:/Devel/emacs/lib'