Subject: bug#18381: 24.3.93; Diary can wrongly be displayed in Calendar's window

From: Glenn Morris <[email-masked]>
Date: Tue, 09 Sep 2014 03:44:25 -0400

martin rudalics wrote:

>> (let ((display-buffer-fallback-action
>>         (list (delq 'display-buffer-in-previous-window
>>                  (copy-sequence (car display-buffer-fallback-action))))))
>>    ...)
[...]
> (let ((display-buffer-overriding-action
>        (list (delq 'display-buffer-in-previous-window
>                 (copy-sequence (car display-buffer-fallback-action))))))
>   ...)

I can't see that the second form is substantially cleaner than the
first, but ok.

> You still didn't tell me who actually is responsible for displaying the
> calendar and then the diary.

Not sure I understand. Like I said:

M-x diary
M-x calendar
M-x diary

If you are asking me where the display-buffer call is, then it's
diary-display-function as called from diary-list-entries.

The two standard values are diary-fancy-display (which uses
calendar-in-read-only-buffer, which calls display-buffer),
and diary-simple-display, which calls display-buffer directly.

Since calendar-in-read-only-buffer is a general function, I'd prefer not
to add too much that is specific to this one usage.

And even for the diary using the previous window might be right in some
cases, just not this specific one where the previous window now contains
the calendar.

>  Is it `calendar-in-read-only-buffer'? If we are sure that it's there,
> we can pass the necessary advice in that mancro's `display-buffer'
> call's ACTION argument.

What would the necessary advice look like?

At the moment I think I'm going to settle for just getting 24.3
behaviour back.

Perhaps this should all be rewritten using modern display syntax rather
than trying to coerce it to behave piecemeal.