Subject: Re: bug#8484: 24.0.50; Dired problems with marking and hidden subdirs

From: Lars Ingebrigtsen <[email-masked]>
Date: Mon, 14 Sep 2020 14:58:24 +0200

Stephen Berman <[email-masked]> writes:

> 1. emacs -Q
> 2. Create a directory containing a non-empty directory,
>    e.g. "~/test/test0/test1". 
> 3. Visit "test" in Dired: `C-x d ~/test RET'
> 4. Put point on "test0" and type `i' to insert the subdirectory.
> 5. With point within the inserted subdirectory type `$' to hide it.
> 6. Type `% m RET' to mark all files except "." and "..".  This is what
>    buffer "test" now looks like:
>
>      /home/steve/test:
>      total used in directory 12 available 24083132
>      drwxr-xr-x 3 steve users 4096 2011-04-12 09:22 .
>      drwxr-xr-x 6 steve users 4096 2011-04-12 09:20 ..
>    * drwxr-xr-x 3 steve users 4096 2011-04-12 09:23 test0
>
>    * /home/steve/test/test0:...
>
> 7. Try to operate on the marked files, e.g. `C', `R', 'D' etc.
> => Instead of the operation being executed, you get the message "Cannot
> operate on `.' or `..'".
> 8. Now type `$' on the hidden subdirectory to unhide it.  The two marked
>    lines remain marked.  Then repeat step 7.
> => Regardless of where point is, you get this error: "No file on this line"

I tried this recipe in Emacs 28, and I was unable to reproduce it, but
the recipe from the merged bug bug#23454 was still present in Emacs 28.

Stephen's patch seems to fix that example, so I've now applied it to the
trunk.  I had to move some utility functions from dired-aux to avoid
dired.el unconditionally loading dired-aux always (since this change is
in a very fundamental dired function).

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no