Subject: bug#6636: 24.0.50; special dired feature confuse all dired commands.

From: "Drew Adams" <[email-masked]>
Date: Thu, 15 Jul 2010 11:16:58 -0700

> Start in directory "/home/you"
> (dired (cons "My Working dir" (dired-get-marked-files)))
> 
> Now trying any dired commands (e.g delete, copy etc...) partially fail
> with wrong type argument stringp....(("/foo" "/bar" "/baz"))
> 
> If you eval dired-buffers you can see that "/home/you" is linked to
> buffer "My Working dir" (done by `dired-advertise')
> which is wrong and confuse all dired commands.

The is in `dired-buffers-for-dir'.  It has this code:

(file-name-non-directory dired-directory)

This is wrong. `dired-directory' has every right to be a cons, as it is in this
case.

Function `dired-buffers-for-dir' was introduced in 23.1, creating this
regression wrt Emacs 22.3 and prior releases.

--

FWIW -

This problem, like previous (fixed) bugs surrounding the use of a cons as the
arg to `dired', comes about because this wonderful Dired feature is not
sufficiently well known.  It is hardly even documented, yet it is very useful.

IOW, IMO the first bug wrt this is that the doc is paltry wrt this feature.
Code bugs tend to follow, because Emacs developers (like Emacs users in general)
are not thinking about the cons case for `dired-directory'.