GNU bug report logs - #66128
28.2; visible-bell breaks setterm --inversescreen on

Previous Next

Package: emacs;

Reported by: tom <at> logand.com

Date: Wed, 20 Sep 2023 20:16:01 UTC

Severity: normal

Found in version 28.2

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: dickey <at> his.com
Cc: 66128 <at> debbugs.gnu.org, tom <at> logand.com
Subject: bug#66128: 28.2; visible-bell breaks setterm --inversescreen on
Date: Mon, 25 Sep 2023 08:03:38 +0300
> Date: Sun, 24 Sep 2023 20:07:03 -0400
> From: Thomas Dickey <dickey <at> his.com>
> Cc: Tomas Hlavaty <tom <at> logand.com>, Thomas Dickey <dickey <at> his.com>,
> 	66128 <at> debbugs.gnu.org
> 
> setterm doesn't have any special way of manipulating the terminal -
> it uses the same escape sequences that emacs would
> 
> >     $ emacs -Q --eval '(setq visible-bell t)'
> > 
> >   Then in Emacs do something that causes a bell, like try moving beyond
> >   the buffer's end.  This causes the Emacs background to become white,
> >   i.e. the visible-bell somehow countermands the inversescreen state.
> > 
> > Can you think of any reason for this behavior?  Do terminals honor
> 
> https://github.com/util-linux/util-linux/blob/master/term-utils/setterm.c
> 
> https://github.com/util-linux/util-linux/blob/1e0ad14b3ac08d855cda6de346a65f9b834e00db/term-utils/setterm.c#L1005
> 
> 	/* -inversescreen [on|off]. */
> 	if (ctl->opt_inversescreen)
> 		fputs(ctl->opt_invsc_on ? "\033[?5h" : "\033[?5l", stdout);
> 
> man console_codes
> 
>        ESC [ ? 5 h
>               DECSCNM (default off): Set reverse-video mode.
> 
> but visual-bell can be the same thing
> 
> The "vb" termcap capability is found with "man 5 terminfo"
> 
>           flash_screen                flash     vb     visible bell (may
>                                                        not move cursor)
> 
> to be "flash" in terminfo,
> and "infocmp linux" shows
> 
> 	flash=\E[?5h$<200/>\E[?5l,
> 
> which is to say,
> 	turn reverse-video on
> 	wait 200 milliseconds
> 	turn reverse-video off

Thanks.  So Emacs should ideally reverse the sequence when the
terminal is in the reverse-video mode, or at least send the "\033[?5h"
sequence after sending "flash"?  But can Emacs know that the terminal
is in this mode at startup?




This bug report was last modified 1 year and 272 days ago.

Previous Next


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