I'm implementing dired-single-buffer
The function of the same name has the following `let initialization
(let ((name (or default-dirname (dired-get-filename nil t)))) ;;
default-dirname is an optional argument to dired-single-buffer
The two conditions to `or are not sufficient if I call dired-single-buffer
from an unvisited buffer. The result is that `name is nil and a string-p,
nil error is thrown.
A simple hack is to add a third condition to `or
(let ((name (or default-dirname (dired-get-filename nil t) "~/"))) ;;
fall-back to /home/user
I guess using `default-directory` rather than "~" would be more
generally useful.
But, it IS a hack and means I have altered some good citizen's code.
Indeed. Luckily Emacs does make it possible to do that.
How can that be resolved? Might the solution be a customization of dired?
I think it should be considered as a bug in `dired-single-buffer`.
From the documentation of dired-get-filename I don't grok a solution....
You can only meaningfully use `dired-get-filename` inside
a dired buffer, so the problem is in that function.