GNU bug report logs -
#64395
[PATCH] * src/xdisp.c (display_string): Don't truncate mode line in terminal
Previous Next
Reported by: Gong Qijian <gongqijian <at> gmail.com>
Date: Sat, 1 Jul 2023 06:31:01 UTC
Severity: normal
Tags: patch
Merged with 64396
Done: Eli Zaretskii <eliz <at> gnu.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 64395 in the body.
You can then email your comments to 64395 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 06:31:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Gong Qijian <gongqijian <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Sat, 01 Jul 2023 06:31:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
The truncate happens when the mode line is of lenght
`(1+ (window-width))' and ends with CJK characters.
Reproduce:
$ emacs -nw -Q --eval "\
(progn
;; Set modeline
(setq mode-line-format
'((:eval
(truncate-string-to-width
(concat (format-mode-line \"- Ln %l, Col %c \")
(apply #'concat (make-list (window-width) \"-\")))
(1+ (window-width)) nil nil \"中文\"))))
;; Steps to reproduce
(with-current-buffer \"*scratch*\"
(erase-buffer)
(insert \";; 1. You Can't move the cursor here, this is where the menu should be\n\"
\";; 2. Press `C-x o' to switch to the other window\n\"
\";; 3. Repeat step 2 several times\n\"
\";; 4. You will see nothing in the buffer except multiple lines of modeline\n\")
(goto-char (point-min))
(split-window-right)))"
---
src/xdisp.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/xdisp.c b/src/xdisp.c
index 4841a0af..00d2dea0 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -27360,7 +27360,7 @@ display_string (const char *string, Lisp_Object lisp_string, Lisp_Object face_st
{
/* Add truncation mark, but don't do it if the line is
truncated at a padding space. */
- if (it_charpos < it->string_nchars)
+ if (it_charpos <= it->string_nchars)
{
if (!FRAME_WINDOW_P (it->f))
{
--
2.25.0
Merged 64395 64396.
Request was from
Eli Zaretskii <eliz <at> gnu.org>
to
control <at> debbugs.gnu.org
.
(Sat, 01 Jul 2023 07:49:02 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 07:50:02 GMT)
Full text and
rfc822 format available.
Message #10 received at 64395 <at> debbugs.gnu.org (full text, mbox):
> Cc: Gong Qijian <gongqijian <at> gmail.com>
> From: Gong Qijian <gongqijian <at> gmail.com>
> Date: Sat, 1 Jul 2023 14:27:56 +0800
>
> The truncate happens when the mode line is of lenght
> `(1+ (window-width))' and ends with CJK characters.
>
> Reproduce:
Thanks, but please show the screenshots of the effect of the bug. I
don't have access to terminals that can display CJK characters on the
mode line, so full reproduction of the issue is impossible for me.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 10:42:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 64395 <at> debbugs.gnu.org (full text, mbox):
[Pleased use Reply All to reply, so that the bug tracker is CC'ed.]
> From: qijian gong <gongqijian <at> gmail.com>
> Date: Sat, 1 Jul 2023 18:23:21 +0800
>
> [image: emacs-modeline-bug64395.gif]
>
> Eli Zaretskii <eliz <at> gnu.org> 于2023年7月1日周六 15:49写道:
>
> > > Cc: Gong Qijian <gongqijian <at> gmail.com>
> > > From: Gong Qijian <gongqijian <at> gmail.com>
> > > Date: Sat, 1 Jul 2023 14:27:56 +0800
> > >
> > > The truncate happens when the mode line is of lenght
> > > `(1+ (window-width))' and ends with CJK characters.
> > >
> > > Reproduce:
> >
> > Thanks, but please show the screenshots of the effect of the bug. I
> > don't have access to terminals that can display CJK characters on the
> > mode line, so full reproduction of the issue is impossible for me.
> >
Thanks, but I see no mode-line image on that screen shot. I only see
the source of your reproduction recipe. I asked to see the effect of
running the recipe.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 10:47:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 64395 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
[image: emacs-modeline-bug64395.gif]
Eli Zaretskii <eliz <at> gnu.org> 于2023年7月1日周六 18:41写道:
> [Pleased use Reply All to reply, so that the bug tracker is CC'ed.]
>
> > From: qijian gong <gongqijian <at> gmail.com>
> > Date: Sat, 1 Jul 2023 18:23:21 +0800
> >
> > [image: emacs-modeline-bug64395.gif]
> >
> > Eli Zaretskii <eliz <at> gnu.org> 于2023年7月1日周六 15:49写道:
> >
> > > > Cc: Gong Qijian <gongqijian <at> gmail.com>
> > > > From: Gong Qijian <gongqijian <at> gmail.com>
> > > > Date: Sat, 1 Jul 2023 14:27:56 +0800
> > > >
> > > > The truncate happens when the mode line is of lenght
> > > > `(1+ (window-width))' and ends with CJK characters.
> > > >
> > > > Reproduce:
> > >
> > > Thanks, but please show the screenshots of the effect of the bug. I
> > > don't have access to terminals that can display CJK characters on the
> > > mode line, so full reproduction of the issue is impossible for me.
> > >
>
> Thanks, but I see no mode-line image on that screen shot. I only see
> the source of your reproduction recipe. I asked to see the effect of
> running the recipe.
>
>
[Message part 2 (text/html, inline)]
[emacs-modeline-bug64395.gif (image/gif, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 10:51:01 GMT)
Full text and
rfc822 format available.
Message #19 received at 64395 <at> debbugs.gnu.org (full text, mbox):
> From: qijian gong <gongqijian <at> gmail.com>
> Date: Sat, 1 Jul 2023 18:45:55 +0800
> Cc: 64395 <at> debbugs.gnu.org
>
> emacs-modeline-bug64395.gif
Thanks, but I still don't see the mode-line display that is produced
by your recipe. I only see the recipe itself.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 11:01:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 64395 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Do you mean the keystroke logs?
Eli Zaretskii <eliz <at> gnu.org> 于2023年7月1日周六 18:50写道:
> > From: qijian gong <gongqijian <at> gmail.com>
> > Date: Sat, 1 Jul 2023 18:45:55 +0800
> > Cc: 64395 <at> debbugs.gnu.org
> >
> > emacs-modeline-bug64395.gif
>
> Thanks, but I still don't see the mode-line display that is produced
> by your recipe. I only see the recipe itself.
>
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 11:08:02 GMT)
Full text and
rfc822 format available.
Message #25 received at 64395 <at> debbugs.gnu.org (full text, mbox):
> From: qijian gong <gongqijian <at> gmail.com>
> Date: Sat, 1 Jul 2023 19:00:17 +0800
> Cc: 64395 <at> debbugs.gnu.org
>
> Do you mean the keystroke logs?
No, I mean the picture of the mode-line with truncation that is
produced by running your reproduction recipe.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 11:26:01 GMT)
Full text and
rfc822 format available.
Message #28 received at 64395 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Sorry, I don't quite understand what you mean.
The picture I sent earlier is an animation. It shows the entire
reproduction process and the result.
Eli Zaretskii <eliz <at> gnu.org> 于2023年7月1日周六 19:07写道:
> > From: qijian gong <gongqijian <at> gmail.com>
> > Date: Sat, 1 Jul 2023 19:00:17 +0800
> > Cc: 64395 <at> debbugs.gnu.org
> >
> > Do you mean the keystroke logs?
>
> No, I mean the picture of the mode-line with truncation that is
> produced by running your reproduction recipe.
>
[Message part 2 (text/html, inline)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 12:01:02 GMT)
Full text and
rfc822 format available.
Message #31 received at 64395 <at> debbugs.gnu.org (full text, mbox):
> From: qijian gong <gongqijian <at> gmail.com>
> Date: Sat, 1 Jul 2023 19:25:26 +0800
> Cc: 64395 <at> debbugs.gnu.org
>
> The picture I sent earlier is an animation. It shows the entire reproduction process and the result.
Sorry, I didn't realize that it included animation.
I think I see the issue now.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sat, 01 Jul 2023 12:48:01 GMT)
Full text and
rfc822 format available.
Message #34 received at 64395 <at> debbugs.gnu.org (full text, mbox):
> Cc: 64395 <at> debbugs.gnu.org
> Date: Sat, 01 Jul 2023 15:00:48 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> > From: qijian gong <gongqijian <at> gmail.com>
> > Date: Sat, 1 Jul 2023 19:25:26 +0800
> > Cc: 64395 <at> debbugs.gnu.org
> >
> > The picture I sent earlier is an animation. It shows the entire reproduction process and the result.
>
> Sorry, I didn't realize that it included animation.
>
> I think I see the issue now.
OK, I've now found a way of reproducing the problem on a system to
which I have access.
Your proposed change fixes the problem, but it fixes it incorrectly:
after applying the patch, I see a truncation glyph "$" at the end of
the mode line. This should never happen on the mode line: we don't
show truncation glyphs there. Compare the display after applying your
patch with the mode-line displayed after evaluating the below:
(setq mode-line-format
(concat (format-mode-line
"- Ln %l, Col %c ")
(make-string 100 ?-)))
As you see, the expected display of the mode line that is truncated is
simply not to see the truncated part, without any "$" truncation
glyph at the end of the mode line.
So a slightly different change is needed to properly fix this case.
I'm working on such a proper fix.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#64395
; Package
emacs
.
(Sun, 02 Jul 2023 08:15:02 GMT)
Full text and
rfc822 format available.
Message #37 received at 64395 <at> debbugs.gnu.org (full text, mbox):
> Cc: 64395 <at> debbugs.gnu.org
> Date: Sat, 01 Jul 2023 15:47:39 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> Your proposed change fixes the problem, but it fixes it incorrectly:
> after applying the patch, I see a truncation glyph "$" at the end of
> the mode line. This should never happen on the mode line: we don't
> show truncation glyphs there. Compare the display after applying your
> patch with the mode-line displayed after evaluating the below:
>
> (setq mode-line-format
> (concat (format-mode-line
> "- Ln %l, Col %c ")
> (make-string 100 ?-)))
>
> As you see, the expected display of the mode line that is truncated is
> simply not to see the truncated part, without any "$" truncation
> glyph at the end of the mode line.
>
> So a slightly different change is needed to properly fix this case.
> I'm working on such a proper fix.
Should be fixed now on the master branch, please test.
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Sat, 15 Jul 2023 07:48:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Gong Qijian <gongqijian <at> gmail.com>
:
bug acknowledged by developer.
(Sat, 15 Jul 2023 07:48:02 GMT)
Full text and
rfc822 format available.
Message #42 received at 64395-done <at> debbugs.gnu.org (full text, mbox):
> Cc: 64395 <at> debbugs.gnu.org
> Date: Sun, 02 Jul 2023 11:15:20 +0300
> From: Eli Zaretskii <eliz <at> gnu.org>
>
> > Cc: 64395 <at> debbugs.gnu.org
> > Date: Sat, 01 Jul 2023 15:47:39 +0300
> > From: Eli Zaretskii <eliz <at> gnu.org>
> >
> > Your proposed change fixes the problem, but it fixes it incorrectly:
> > after applying the patch, I see a truncation glyph "$" at the end of
> > the mode line. This should never happen on the mode line: we don't
> > show truncation glyphs there. Compare the display after applying your
> > patch with the mode-line displayed after evaluating the below:
> >
> > (setq mode-line-format
> > (concat (format-mode-line
> > "- Ln %l, Col %c ")
> > (make-string 100 ?-)))
> >
> > As you see, the expected display of the mode line that is truncated is
> > simply not to see the truncated part, without any "$" truncation
> > glyph at the end of the mode line.
> >
> > So a slightly different change is needed to properly fix this case.
> > I'm working on such a proper fix.
>
> Should be fixed now on the master branch, please test.
No further comments within 2 weeks, so I presume the bug has indeed
been solved, and I'm therefore closing it.
Reply sent
to
Eli Zaretskii <eliz <at> gnu.org>
:
You have taken responsibility.
(Sat, 15 Jul 2023 07:48:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Gong Qijian <gongqijian <at> gmail.com>
:
bug acknowledged by developer.
(Sat, 15 Jul 2023 07:48:03 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sat, 12 Aug 2023 11:24:14 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 25 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.