Subject: bug#33871: 27.0.50; Revert Dired window saved in window configuration

From: Juri Linkov <[email-masked]>
Date: Sat, 23 Mar 2024 20:31:57 +0200

>> Ok, let's add new code to separate functions
>> 'window-set-context' and 'window-use-context'.
>> Below is the patch with these new functions.
>> Maybe they could be moved from tab-bar.el to window.el?
>
> I think you should do that.

OTOH, tab-bar.el is preloaded as well, so no problem to leave this
in tab-bar.el, since window.el is too large already.

> Maybe 'window-restore-set-context' and 'window-restore-use-context'
> would be more indicative names.

The name 'window-restore-set-context' looks quite self-contradictory.
If your intention was to use a unique prefix, then maybe we could use the
prefix 'window-context' like in 'window-context-set', 'window-context-use'.

> Note that when a buffer is killed, the values of its local variables may
> be lost.  I don't know whether this is an issue here.  Alternatively, we
> could have 'set_window_buffer' set the 'context' window parameter from
> the buffer-local value which would, however, mean that whenever one
> changes the buffer-local value, one would have to simultaneously update
> the parameters in all windows showing that buffer.  Something that could
> be done with the help of an advice, though...

This doesn't look like an issue here because the context is stored
in a window parameter.  And when the buffer is killed, there is no need
to restore a context in the killed buffer.

The format of the window parameter

  '(BUFFER-NAME . ((dired-filename . FILENAME)))

uses BUFFER-NAME to check whether the buffer was killed,
and when the current window's buffer doesn't match BUFFER-NAME,
then do nothing.