Subject: Re: bug#54636: dired fails to update subdirs when files are created/deleted/renamed

From: Tassilo Horn <[email-masked]>
Date: Wed, 30 Mar 2022 18:02:15 +0200

Eli Zaretskii <[email-masked]> writes:

>> From: Tassilo Horn <[email-masked]>
>> Cc: [email-masked], [email-masked]
>> Date: Wed, 30 Mar 2022 16:30:22 +0200
>> 
>> Here's a patch.  I've created a separate cond-arm for the SUBDIRS case,
>> so any callers which are not dired-clean-up-after-deletion (the only one
>> setting SUBDIRS) are not affected.
>
> Thanks.
>
> So when will SUBDIRS be non-nil?  dired-clean-up-after-deletion is
> called not only when a directory is deleted, I think.

Yes, it's also called when deleting a file but in that case
dired-buffers-for-dir will return nil, so no buffer will be deleted.
Probably, I shouldn't even bother to call it if a file has been deleted.

I think my patch is valid but now I think I should just create a
separate function dired-buffers-for-cleanup and use that from
dired-clean-up-after-deletion (or just collect the buffers in that
function) and remove the SUBDIRS argument from dired-buffers-for-dir as
it changes its logic too drastically.

I'll prepare a patch in that direction later.

Bye,
Tassilo