GNU bug report logs - #78957
31.0.50; Wrong mode-line in fancy diary

Previous Next

Package: emacs;

Reported by: Manuel Giraud <manuel <at> ledu-giraud.fr>

Date: Fri, 4 Jul 2025 19:16:02 UTC

Severity: normal

Found in version 31.0.50

To reply to this bug, email your comments to 78957 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#78957; Package emacs. (Fri, 04 Jul 2025 19:16:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Manuel Giraud <manuel <at> ledu-giraud.fr>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 04 Jul 2025 19:16:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: bug-gnu-emacs <at> gnu.org
Subject: 31.0.50; Wrong mode-line in fancy diary
Date: Fri, 04 Jul 2025 21:14:52 +0200
Hi,

When viewing diary entry from the calendar, the mode line could be set
erroneously.  The recipe:

          - Have a file "/tmp/diary" with the following content:
--8<---------------cut here---------------start------------->8---
July 4, 2025 A bitter day for many
--8<---------------cut here---------------end--------------->8---
          - emacs -Q
          - M-: (setopt diary-file "/tmp/diary") <RET>
          - M-: (toggle-frame-fullscreen) <RET>
          - M-: (calendar) <RET>
          - g d
          - 2025 <RET>
          - July <RET>
          - 4 <RET>
          - d

Observe that the date in the mode line of the diary view buffer is not
centered and maybe partly out of sight.  This seems to come from the
fact that the call to `window-edges' in `calendar-set-mode-line' does
not return correct values but I can't figure out why.


In GNU Emacs 31.0.50 (build 14, x86_64-unknown-openbsd7.7) of 2025-07-04
 built on computer
Repository revision: 763c3cd081a833940961373a73705640b1808636
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101018
System Description: OpenBSD computer 7.7 GENERIC.MP#41 amd64

Configured using:
 'configure CC=egcc CPPFLAGS=-I/usr/local/include
 LDFLAGS=-L/usr/local/lib MAKEINFO=gmakeinfo --prefix=/home/manuel/emacs
 --bindir=/home/manuel/bin --with-x-toolkit=no
 --with-toolkit-scroll-bars=no --without-cairo --without-dbus
 --without-gconf --without-gsettings --without-compress-install'

Configured features:
FREETYPE GIF GLIB GMP GNUTLS HARFBUZZ JPEG LCMS2 LIBOTF LIBXML2 M17N_FLT
MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG SQLITE3 THREADS TIFF
TREE_SITTER WEBP X11 XDBE XFT XIM XINERAMA XINPUT2 XPM XRANDR ZLIB

Important settings:
  value of $LC_CTYPE: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: VC dir

Minor modes in effect:
  vc-dir-git-mode: t
  display-time-mode: t
  display-battery-mode: t
  desktop-save-mode: t
  exwm-randr-mode: t
  server-mode: t
  electric-pair-mode: t
  override-global-mode: t
  repeat-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  minibuffer-regexp-mode: t
  buffer-read-only: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t

Load-path shadows:
/home/manuel/prog/elisp/exwm/exwm hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm
/home/manuel/prog/elisp/exwm/exwm-xsettings hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-xsettings
/home/manuel/prog/elisp/exwm/exwm-xim hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-xim
/home/manuel/prog/elisp/exwm/exwm-workspace hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-workspace
/home/manuel/prog/elisp/exwm/exwm-randr hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-randr
/home/manuel/prog/elisp/exwm/exwm-manage hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-manage
/home/manuel/prog/elisp/exwm/exwm-layout hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-layout
/home/manuel/prog/elisp/exwm/exwm-input hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-input
/home/manuel/prog/elisp/exwm/exwm-floating hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-floating
/home/manuel/prog/elisp/exwm/exwm-systemtray hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-systemtray
/home/manuel/prog/elisp/exwm/exwm-core hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-core
/home/manuel/prog/elisp/exwm/exwm-background hides /home/manuel/.emacs.d/elpa/exwm-0.34/exwm-background
/home/manuel/.emacs.d/elpa/ef-themes-1.10.0/theme-loaddefs hides /home/manuel/emacs/share/emacs/31.0.50/lisp/theme-loaddefs
/home/manuel/.emacs.d/elpa/idlwave-6.5.1/idlwave hides /home/manuel/emacs/share/emacs/31.0.50/lisp/obsolete/idlwave
/home/manuel/.emacs.d/elpa/idlwave-6.5.1/idlw-toolbar hides /home/manuel/emacs/share/emacs/31.0.50/lisp/obsolete/idlw-toolbar
/home/manuel/.emacs.d/elpa/idlwave-6.5.1/idlw-shell hides /home/manuel/emacs/share/emacs/31.0.50/lisp/obsolete/idlw-shell
/home/manuel/.emacs.d/elpa/idlwave-6.5.1/idlw-help hides /home/manuel/emacs/share/emacs/31.0.50/lisp/obsolete/idlw-help
/home/manuel/.emacs.d/elpa/idlwave-6.5.1/idlw-complete-structtag hides /home/manuel/emacs/share/emacs/31.0.50/lisp/obsolete/idlw-complete-structtag

Features:
(shadow sort mail-extr emacsbug lisp-mnt macrostep-c cmacexp macrostep
doc-view filenotify jka-compr image-mode exif flyspell ispell tex-mode
compile shell pcomplete comint ansi-osc ansi-color vc-hg vc-bzr vc-src
vc-sccs vc-svn vc-cvs vc-rcs log-view log-edit add-log pcvs-util eww
vtable mule-util url-queue mm-url gnus-dired vc-dir ewoc vc vc-git
diff-mode track-changes files-x vc-dispatcher debbugs-browse
bug-reference texinfo texinfo-loaddefs format-spec time battery desktop
frameset exwm-randr xcb-randr exwm exwm-input xcb-keysyms xcb-xkb
exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout
exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types
xcb-debug server ef-themes modus-operandi-tinted-theme modus-themes zone
speed-type thingatpt url-http url-auth url-gw nsm compat ytdious ring
mpdired transmission color calc-bin calc-ext calc calc-loaddefs rect
calc-macs supercite regi ebdb-gnus gnus-msg gnus-art mm-uu mml2015
mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku
url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus dbus xml
gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601
gnus-spec gnus-int gnus-range gnus-win ebdb-message message yank-media
puny rfc822 mml mml-sec epa derived epg rfc6068 epg-config mm-decode
mm-bodies mm-encode mail-parse rfc2231 gmm-utils mailheader ebdb-mua
ebdb-com crm ebdb-format ebdb mailabbrev eieio-opt speedbar ezimage
dframe find-func eieio-base timezone icalendar gnus nnheader gnus-util
text-property-search time-date range sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils erlang-start idlwave idlwave-menus
idlw-menus idlwave-bindings idlw-bindings idlwave-routine idlw-routine
idlwave-scan idlw-scan idlwave-help idlw-help idlwave-complete
idlw-complete idlwave-variables idlw-variables skeleton cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
elec-pair appt diary-lib diary-loaddefs cal-menu calendar cal-loaddefs
pcase dired-x dired-aux dired dired-loaddefs edmacro kmacro
use-package-bind-key bind-key use-package-core repeat easy-mmode
cus-edit pp cus-start cus-load wid-edit debbugs-autoloads ebdb-autoloads
cl-extra help-mode ef-themes-autoloads elpher-autoloads exwm-autoloads
gnuplot-autoloads hyperbole-autoloads kotl-autoloads hact set hhist
idlwave-autoloads notmuch-autoloads osm-autoloads pdf-tools-autoloads
reddigg-autoloads ht-autoloads dash-autoloads promise-autoloads
rust-mode-autoloads info slime-autoloads warnings macrostep-autoloads
speed-type-autoloads sudo-edit-autoloads svg-clock-autoloads
tablist-autoloads transmission-autoloads xelb-autoloads
ytdious-autoloads package browse-url xdg url url-proxy url-privacy
url-expand url-methods url-history url-cookie generate-lisp-file
url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq
eieio eieio-core cl-macs icons password-cache json subr-x map byte-opt
gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl
tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd
touch-screen tool-bar dnd fontset image regexp-opt fringe tabulated-list
replace newcomment text-mode lisp-mode prog-mode register page tab-bar
menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse
jit-lock font-lock syntax font-core term/tty-colors frame minibuffer
nadvice seq simple cl-generic indonesian philippine cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european
ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop
case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure
cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp
files window text-properties overlay sha1 md5 base64 format env
code-pages mule custom widget keymap hashtable-print-readable backquote
threads kqueue lcms2 dynamic-setting font-render-setting xinput2 x
multi-tty move-toolbar make-network-process tty-child-frames emacs)

Memory information:
((conses 16 571884 484905) (symbols 48 41392 2)
 (strings 32 195972 20036) (string-bytes 1 4840619)
 (vectors 16 113028) (vector-slots 8 915611 43230) (floats 8 490 804)
 (intervals 56 3510 0) (buffers 1064 36))

-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78957; Package emacs. (Fri, 04 Jul 2025 22:21:02 GMT) Full text and rfc822 format available.

Message #8 received at 78957 <at> debbugs.gnu.org (full text, mbox):

From: Stephen Berman <stephen.berman <at> gmx.net>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 78957 <at> debbugs.gnu.org
Subject: Re: bug#78957: 31.0.50; Wrong mode-line in fancy diary
Date: Sat, 05 Jul 2025 00:20:32 +0200
[Message part 1 (text/plain, inline)]
On Fri, 04 Jul 2025 21:14:52 +0200 Manuel Giraud <manuel <at> ledu-giraud.fr> wrote:

> Hi,
>
> When viewing diary entry from the calendar, the mode line could be set
> erroneously.  The recipe:
>
>           - Have a file "/tmp/diary" with the following content:
>
> July 4, 2025 A bitter day for many
>
>           - emacs -Q
>           - M-: (setopt diary-file "/tmp/diary") <RET>
>           - M-: (toggle-frame-fullscreen) <RET>
>           - M-: (calendar) <RET>
>           - g d
>           - 2025 <RET>
>           - July <RET>
>           - 4 <RET>
>           - d
>
> Observe that the date in the mode line of the diary view buffer is not
> centered and maybe partly out of sight.  This seems to come from the
> fact that the call to `window-edges' in `calendar-set-mode-line' does
> not return correct values but I can't figure out why.

I think it's because both times `window-edges' is called in
`diary-fancy-display' the selected window is the one displaying the
Calendar, whose `window-width' is the full screen width due to
`toggle-frame-fullscreen', while the window displaying the Fancy Diary
is half as wide.  The following patch seems to fix the problem for me:

[Message part 2 (text/x-patch, inline)]
diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
index 8fb6fadfe4c..3b0275d4cee 100644
--- a/lisp/calendar/diary-lib.el
+++ b/lisp/calendar/diary-lib.el
@@ -1058,7 +1058,8 @@ diary-fancy-display
   (unless (car (diary-display-no-entries)) ; no entries
     ;; Prepare the fancy diary buffer.
     (calendar-in-read-only-buffer diary-fancy-buffer
-      (calendar-set-mode-line "Diary Entries")
+      (with-selected-window (get-buffer-window diary-fancy-buffer)
+        (calendar-set-mode-line "Diary Entries"))
       (let ((holiday-list-last-month 1)
             (holiday-list-last-year 1)
             (date (list 0 0 0))
@@ -1139,7 +1140,8 @@ diary-fancy-display
       (if (eq major-mode 'diary-fancy-display-mode)
           (run-hooks 'diary-fancy-display-mode-hook)
         (diary-fancy-display-mode))
-      (calendar-set-mode-line diary--date-string))))
+      (with-selected-window (get-buffer-window diary-fancy-buffer)
+        (calendar-set-mode-line diary--date-string)))))
 
 ;; FIXME modernize?
 (defun diary-print-entries ()
[Message part 3 (text/plain, inline)]
Steve Berman

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78957; Package emacs. (Sat, 05 Jul 2025 08:54:05 GMT) Full text and rfc822 format available.

Message #11 received at 78957 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Stephen Berman <stephen.berman <at> gmx.net>
Cc: 78957 <at> debbugs.gnu.org
Subject: Re: bug#78957: 31.0.50; Wrong mode-line in fancy diary
Date: Sat, 05 Jul 2025 10:53:11 +0200
Stephen Berman <stephen.berman <at> gmx.net> writes:

> On Fri, 04 Jul 2025 21:14:52 +0200 Manuel Giraud <manuel <at> ledu-giraud.fr> wrote:
>
>> Hi,
>>
>> When viewing diary entry from the calendar, the mode line could be set
>> erroneously.  The recipe:
>>
>>           - Have a file "/tmp/diary" with the following content:
>>
>> July 4, 2025 A bitter day for many
>>
>>           - emacs -Q
>>           - M-: (setopt diary-file "/tmp/diary") <RET>
>>           - M-: (toggle-frame-fullscreen) <RET>
>>           - M-: (calendar) <RET>
>>           - g d
>>           - 2025 <RET>
>>           - July <RET>
>>           - 4 <RET>
>>           - d
>>
>> Observe that the date in the mode line of the diary view buffer is not
>> centered and maybe partly out of sight.  This seems to come from the
>> fact that the call to `window-edges' in `calendar-set-mode-line' does
>> not return correct values but I can't figure out why.
>
> I think it's because both times `window-edges' is called in
> `diary-fancy-display' the selected window is the one displaying the
> Calendar, whose `window-width' is the full screen width due to
> `toggle-frame-fullscreen', while the window displaying the Fancy Diary
> is half as wide.  The following patch seems to fix the problem for me:
>
> diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
> index 8fb6fadfe4c..3b0275d4cee 100644
> --- a/lisp/calendar/diary-lib.el
> +++ b/lisp/calendar/diary-lib.el
> @@ -1058,7 +1058,8 @@ diary-fancy-display
>    (unless (car (diary-display-no-entries)) ; no entries
>      ;; Prepare the fancy diary buffer.
>      (calendar-in-read-only-buffer diary-fancy-buffer
> -      (calendar-set-mode-line "Diary Entries")
> +      (with-selected-window (get-buffer-window diary-fancy-buffer)
> +        (calendar-set-mode-line "Diary Entries"))
>        (let ((holiday-list-last-month 1)
>              (holiday-list-last-year 1)
>              (date (list 0 0 0))
> @@ -1139,7 +1140,8 @@ diary-fancy-display
>        (if (eq major-mode 'diary-fancy-display-mode)
>            (run-hooks 'diary-fancy-display-mode-hook)
>          (diary-fancy-display-mode))
> -      (calendar-set-mode-line diary--date-string))))
> +      (with-selected-window (get-buffer-window diary-fancy-buffer)
> +        (calendar-set-mode-line diary--date-string)))))

Thanks!  That works as expected.  I thought that the set-buffer (from
calendar-in-read-only-buffer) was enough but apparently not.

While here, I will complete your patch for other calls of
calendar-set-mode-line (lunar phases,...)
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78957; Package emacs. (Sat, 05 Jul 2025 10:04:03 GMT) Full text and rfc822 format available.

Message #14 received at 78957 <at> debbugs.gnu.org (full text, mbox):

From: Stephen Berman <stephen.berman <at> gmx.net>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 78957 <at> debbugs.gnu.org
Subject: Re: bug#78957: 31.0.50; Wrong mode-line in fancy diary
Date: Sat, 05 Jul 2025 12:02:52 +0200
[Message part 1 (text/plain, inline)]
On Sat, 05 Jul 2025 10:53:11 +0200 Manuel Giraud <manuel <at> ledu-giraud.fr> wrote:

> Stephen Berman <stephen.berman <at> gmx.net> writes:
>
>> On Fri, 04 Jul 2025 21:14:52 +0200 Manuel Giraud <manuel <at> ledu-giraud.fr> wrote:
>>
>>> Hi,
>>>
>>> When viewing diary entry from the calendar, the mode line could be set
>>> erroneously.  The recipe:
>>>
>>>           - Have a file "/tmp/diary" with the following content:
>>>
>>> July 4, 2025 A bitter day for many
>>>
>>>           - emacs -Q
>>>           - M-: (setopt diary-file "/tmp/diary") <RET>
>>>           - M-: (toggle-frame-fullscreen) <RET>
>>>           - M-: (calendar) <RET>
>>>           - g d
>>>           - 2025 <RET>
>>>           - July <RET>
>>>           - 4 <RET>
>>>           - d
>>>
>>> Observe that the date in the mode line of the diary view buffer is not
>>> centered and maybe partly out of sight.  This seems to come from the
>>> fact that the call to `window-edges' in `calendar-set-mode-line' does
>>> not return correct values but I can't figure out why.
>>
>> I think it's because both times `window-edges' is called in
>> `diary-fancy-display' the selected window is the one displaying the
>> Calendar, whose `window-width' is the full screen width due to
>> `toggle-frame-fullscreen', while the window displaying the Fancy Diary
>> is half as wide.  The following patch seems to fix the problem for me:
>>
>> diff --git a/lisp/calendar/diary-lib.el b/lisp/calendar/diary-lib.el
>> index 8fb6fadfe4c..3b0275d4cee 100644
>> --- a/lisp/calendar/diary-lib.el
>> +++ b/lisp/calendar/diary-lib.el
>> @@ -1058,7 +1058,8 @@ diary-fancy-display
>>    (unless (car (diary-display-no-entries)) ; no entries
>>      ;; Prepare the fancy diary buffer.
>>      (calendar-in-read-only-buffer diary-fancy-buffer
>> -      (calendar-set-mode-line "Diary Entries")
>> +      (with-selected-window (get-buffer-window diary-fancy-buffer)
>> +        (calendar-set-mode-line "Diary Entries"))
>>        (let ((holiday-list-last-month 1)
>>              (holiday-list-last-year 1)
>>              (date (list 0 0 0))
>> @@ -1139,7 +1140,8 @@ diary-fancy-display
>>        (if (eq major-mode 'diary-fancy-display-mode)
>>            (run-hooks 'diary-fancy-display-mode-hook)
>>          (diary-fancy-display-mode))
>> -      (calendar-set-mode-line diary--date-string))))
>> +      (with-selected-window (get-buffer-window diary-fancy-buffer)
>> +        (calendar-set-mode-line diary--date-string)))))
>
> Thanks!  That works as expected.  I thought that the set-buffer (from
> calendar-in-read-only-buffer) was enough but apparently not.
>
> While here, I will complete your patch for other calls of
> calendar-set-mode-line (lunar phases,...)

I hope you haven't spent time on that yet, because it occurred to me
that the following patch might suffice:

[Message part 2 (text/x-patch, inline)]
diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 917624c489e..6b23cbcd1d4 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -1167,7 +1167,7 @@ calendar-in-read-only-buffer
      (setq buffer-read-only nil
            buffer-undo-list t)
      (erase-buffer)
-     (display-buffer ,buffer)
+     (select-window (display-buffer ,buffer))
      ,@body
      (goto-char (point-min))
      (set-buffer-modified-p nil)
[Message part 3 (text/plain, inline)]
It seems to DTRT for all users of `calendar-in-read-only-buffer' (after
byte-compiling), if I haven't overlooked anything.

Steve Berman

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78957; Package emacs. (Sat, 05 Jul 2025 10:20:02 GMT) Full text and rfc822 format available.

Message #17 received at 78957 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Stephen Berman <stephen.berman <at> gmx.net>
Cc: 78957 <at> debbugs.gnu.org
Subject: Re: bug#78957: 31.0.50; Wrong mode-line in fancy diary
Date: Sat, 05 Jul 2025 12:19:40 +0200
[Message part 1 (text/plain, inline)]
Stephen Berman <stephen.berman <at> gmx.net> writes:

[...]

> I hope you haven't spent time on that yet, because it occurred to me
> that the following patch might suffice:

:-D I did not spend to much time but, in the mean time, came up with
this one:
[0001-Fix-mode-line-string-width-in-diary-view.patch (text/x-patch, inline)]
From 5b1b04936e5d31197ea5129fb7e56e28f0aa24ad Mon Sep 17 00:00:00 2001
From: Stephen Berman <stephen.berman <at> gmx.net>
Date: Sat, 5 Jul 2025 10:56:00 +0200
Subject: [PATCH] Fix mode-line string width in diary view

* lisp/calendar/calendar.el (calendar-in-read-only-buffer):
Select the buffer window because, for example,
`calendar-set-mode-line' needs it.
---
 lisp/calendar/calendar.el | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
index 917624c489e..8b7aa71db93 100644
--- a/lisp/calendar/calendar.el
+++ b/lisp/calendar/calendar.el
@@ -1168,8 +1168,9 @@ calendar-in-read-only-buffer
            buffer-undo-list t)
      (erase-buffer)
      (display-buffer ,buffer)
-     ,@body
-     (goto-char (point-min))
+     (with-selected-window (get-buffer-window ,buffer)
+       ,@body
+       (goto-char (point-min)))
      (set-buffer-modified-p nil)
      (setq buffer-read-only t)))
 
-- 
2.49.0

[Message part 3 (text/plain, inline)]
But, I prefer yours.  Do you mind if I complete your patch with my log
entry?
-- 
Manuel Giraud

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78957; Package emacs. (Sat, 05 Jul 2025 10:24:02 GMT) Full text and rfc822 format available.

Message #20 received at 78957 <at> debbugs.gnu.org (full text, mbox):

From: Stephen Berman <stephen.berman <at> gmx.net>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 78957 <at> debbugs.gnu.org
Subject: Re: bug#78957: 31.0.50; Wrong mode-line in fancy diary
Date: Sat, 05 Jul 2025 12:23:21 +0200
On Sat, 05 Jul 2025 12:19:40 +0200 Manuel Giraud <manuel <at> ledu-giraud.fr> wrote:

> Stephen Berman <stephen.berman <at> gmx.net> writes:
>
> [...]
>
>> I hope you haven't spent time on that yet, because it occurred to me
>> that the following patch might suffice:
>
> :-D I did not spend to much time but, in the mean time, came up with
> this one:
>
>>From 5b1b04936e5d31197ea5129fb7e56e28f0aa24ad Mon Sep 17 00:00:00 2001
> From: Stephen Berman <stephen.berman <at> gmx.net>
> Date: Sat, 5 Jul 2025 10:56:00 +0200
> Subject: [PATCH] Fix mode-line string width in diary view
>
> * lisp/calendar/calendar.el (calendar-in-read-only-buffer):
> Select the buffer window because, for example,
> `calendar-set-mode-line' needs it.
> ---
>  lisp/calendar/calendar.el | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/lisp/calendar/calendar.el b/lisp/calendar/calendar.el
> index 917624c489e..8b7aa71db93 100644
> --- a/lisp/calendar/calendar.el
> +++ b/lisp/calendar/calendar.el
> @@ -1168,8 +1168,9 @@ calendar-in-read-only-buffer
>             buffer-undo-list t)
>       (erase-buffer)
>       (display-buffer ,buffer)
> -     ,@body
> -     (goto-char (point-min))
> +     (with-selected-window (get-buffer-window ,buffer)
> +       ,@body
> +       (goto-char (point-min)))
>       (set-buffer-modified-p nil)
>       (setq buffer-read-only t)))
>  
> -- 
> 2.49.0
>
>
> But, I prefer yours.  Do you mind if I complete your patch with my log
> entry?

Be my guest :-)

Steve Berman




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78957; Package emacs. (Sat, 05 Jul 2025 10:31:02 GMT) Full text and rfc822 format available.

Message #23 received at 78957 <at> debbugs.gnu.org (full text, mbox):

From: Manuel Giraud <manuel <at> ledu-giraud.fr>
To: Stephen Berman <stephen.berman <at> gmx.net>
Cc: 78957 <at> debbugs.gnu.org
Subject: Re: bug#78957: 31.0.50; Wrong mode-line in fancy diary
Date: Sat, 05 Jul 2025 12:30:39 +0200
Stephen Berman <stephen.berman <at> gmx.net> writes:

[...]

>> But, I prefer yours.  Do you mind if I complete your patch with my log
>> entry?
>
> Be my guest :-)

Sorry I spoke to quick.  I think mine does the right thing, because it
preserve the selected window as the calendar (as it used to be).  WDYT?
-- 
Manuel Giraud




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78957; Package emacs. (Sat, 05 Jul 2025 10:41:01 GMT) Full text and rfc822 format available.

Message #26 received at 78957 <at> debbugs.gnu.org (full text, mbox):

From: Stephen Berman <stephen.berman <at> gmx.net>
To: Manuel Giraud <manuel <at> ledu-giraud.fr>
Cc: 78957 <at> debbugs.gnu.org
Subject: Re: bug#78957: 31.0.50; Wrong mode-line in fancy diary
Date: Sat, 05 Jul 2025 12:40:13 +0200
On Sat, 05 Jul 2025 12:30:39 +0200 Manuel Giraud <manuel <at> ledu-giraud.fr> wrote:

> Stephen Berman <stephen.berman <at> gmx.net> writes:
>
> [...]
>
>>> But, I prefer yours.  Do you mind if I complete your patch with my log
>>> entry?
>>
>> Be my guest :-)
>
> Sorry I spoke to quick.  I think mine does the right thing, because it
> preserve the selected window as the calendar (as it used to be).  WDYT?

Ah, right, I did overlook that.  Yes, your patch is better.

Steve Berman




This bug report was last modified today.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.