Subject: bug#57334: 28.1; Fix wdired with (dired '(dir f1 f2 ...))

From: Thierry Volpiatto <[email-masked]>
Date: Mon, 22 Aug 2022 14:42:31 +0000

Lars Ingebrigtsen <[email-masked]> writes:

> Thierry Volpiatto <[email-masked]> writes:
>
>> +                 (setcdr dired-directory
>> +                         ;; Replace in `dired-directory' files that have
>> +                         ;; been modified with their new name keeping
>> +                         ;; the ones that are unmodified at the same place.
>> +                         (cl-loop for f in (cdr dired-directory)
>> +                                  collect (or (assoc-default f files-renamed)
>> +                                              f)))))
>
> This isn't obviously safe -- I think you're changing the list that
> `dired' was originally called with here,

Of course it have to be changed, it has been modified by wdired at this point,
so if you want to redisplay a dired buffer reflecting your changes you
have to modify it no ?

> which we shouldn't do.

You already do it when DIRNAME is a string isn't it?

> (It may even be a constant.)

Can you elaborate?

> So I think this should be changed to not do that.

-- 
Thierry