GNU bug report logs -
#56952
29.0.50; Emoji skin-tone modifiers disrupt terminal output
Previous Next
Reported by: "J.P." <jp <at> neverwas.me>
Date: Wed, 3 Aug 2022 13:43:02 UTC
Severity: normal
Found in version 29.0.50
Done: "J.P." <jp <at> neverwas.me>
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 56952 in the body.
You can then email your comments to 56952 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#56952
; Package
emacs
.
(Wed, 03 Aug 2022 13:43:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
"J.P." <jp <at> neverwas.me>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Wed, 03 Aug 2022 13:43:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
I use graphical Emacs, so this may be pilot error or some external issue
I'm mistaking for an Emacs one. Steps to reproduce:
- emacs -Q -nw
- In *scratch*, M-:
(dotimes (_ 10) (insert ";; \U0001f9dc\U0001f3fc 12345\n\n\n\n\n\n"))
- Make entire buffer the active region (put mark at BOB and point at EOB)
- Scroll down (M-v) once or twice
- Gaps appear in the mode line and visual artifacts elsewhere
AFAICT, the two inserted characters can be any valid emoji/modifier
combination. Additional leading or trailing emojis (or other characters,
like ZWJ \u200d or VS-16 \ufe0f) don't seem to affect the result.
This was initially noticed on an Alacritty terminal emulator displaying
a remote Emacs 28. The session in the screenshot below was run in a
stock VM image [1] with only Emacs 29 installed:
~$ env | grep -i term
COLORTERM=truecolor
GNOME_TERMINAL_SCREEN=/org/gnome/Terminal/screen/06526de0_c54d_497a_b95f_7e039a886d02
TERM=xterm-256color
GNOME_TERMINAL_SERVICE=:1.95
~$ uname -r
5.10.0-16-amd64
~$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
[1] https://builder.libguestfs.org/index.asc
In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu)
of 2022-08-03 built on debianbullseye
Repository revision: 4f3e95bed523be11f3be7b791c6ae909ffa77a8d
Repository branch: master
System Description: Debian GNU/Linux 11 (bullseye)
Configured using:
'configure --without-x'
Configured features:
ACL DBUS GMP GNUTLS MODULES NOTIFY INOTIFY PDUMPER SECCOMP SOUND THREADS
Important settings:
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: 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:
None found.
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dnd dired-loaddefs rfc822 mml mml-sec password-cache epa derived epg
rfc6068 epg-config gnus-util text-property-search time-date subr-x
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader cl-loaddefs cl-lib sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils term/xterm xterm byte-opt gv bytecomp
byte-compile cconv regexp-opt rmc iso-transl tooltip eldoc paren
electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode
tabulated-list replace newcomment text-mode lisp-mode prog-mode register
page tab-bar menu-bar rfn-eshadow isearch easymenu timer select 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 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 dbusbind
inotify multi-tty make-network-process emacs)
Memory information:
((conses 16 47267 10255)
(symbols 48 5661 0)
(strings 32 15261 1789)
(string-bytes 1 495339)
(vectors 16 8381)
(vector-slots 8 102650 6988)
(floats 8 24 36)
(intervals 56 181 12)
(buffers 992 10))
[bug_report_terminal.png (image/png, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#56952
; Package
emacs
.
(Wed, 03 Aug 2022 14:29:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 56952 <at> debbugs.gnu.org (full text, mbox):
> From: "J.P." <jp <at> neverwas.me>
> Date: Wed, 03 Aug 2022 06:42:08 -0700
>
> - emacs -Q -nw
> - In *scratch*, M-:
>
> (dotimes (_ 10) (insert ";; \U0001f9dc\U0001f3fc 12345\n\n\n\n\n\n"))
>
> - Make entire buffer the active region (put mark at BOB and point at EOB)
> - Scroll down (M-v) once or twice
> - Gaps appear in the mode line and visual artifacts elsewhere
>
> AFAICT, the two inserted characters can be any valid emoji/modifier
> combination. Additional leading or trailing emojis (or other characters,
> like ZWJ \u200d or VS-16 \ufe0f) don't seem to affect the result.
>
> This was initially noticed on an Alacritty terminal emulator displaying
> a remote Emacs 28. The session in the screenshot below was run in a
> stock VM image [1] with only Emacs 29 installed:
On a TTY Emacs expects the terminal emulator to DTRT with composable
sequences. Some emulators don't, so you need to turn off
auto-composition-mode for those. (The value of auto-composition-mode
can be a string naming the terminal where to disable it
automatically.)
Reply sent
to
"J.P." <jp <at> neverwas.me>
:
You have taken responsibility.
(Wed, 03 Aug 2022 19:43:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
"J.P." <jp <at> neverwas.me>
:
bug acknowledged by developer.
(Wed, 03 Aug 2022 19:43:02 GMT)
Full text and
rfc822 format available.
Message #13 received at 56952-done <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
> On a TTY Emacs expects the terminal emulator to DTRT with composable
> sequences. Some emulators don't, so you need to turn off
> auto-composition-mode for those. (The value of auto-composition-mode
> can be a string naming the terminal where to disable it
> automatically.)
Ah, gotcha. That indeed does the trick. Thanks. Closing.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#56952
; Package
emacs
.
(Thu, 04 Aug 2022 05:29:02 GMT)
Full text and
rfc822 format available.
Message #16 received at 56952 <at> debbugs.gnu.org (full text, mbox):
> From: "J.P." <jp <at> neverwas.me>
> Cc: 56952-done <at> debbugs.gnu.org
> Date: Wed, 03 Aug 2022 12:42:32 -0700
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> > On a TTY Emacs expects the terminal emulator to DTRT with composable
> > sequences. Some emulators don't, so you need to turn off
> > auto-composition-mode for those. (The value of auto-composition-mode
> > can be a string naming the terminal where to disable it
> > automatically.)
>
> Ah, gotcha. That indeed does the trick. Thanks. Closing.
Can you tell which value of auto-composition-mode did the trick? Or
what is the value of tty-type on that terminal? And which file in
lisp/term/ does Alacritty load when you start the -nw session? I'm
asking because perhaps we should disable auto-composition-mode by
default on this terminal, like we do for the Linux console.
Thanks.
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#56952
; Package
emacs
.
(Thu, 04 Aug 2022 12:57:01 GMT)
Full text and
rfc822 format available.
Message #19 received at 56952 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
> Can you tell which value of auto-composition-mode did the trick? Or
> what is the value of tty-type on that terminal?
On Alacritty 0.10.1 (with the example configuration loaded) `tty-type'
returns "alacritty". And doing
(setq-default auto-composition-mode "alacritty")
inhibits auto composition. Similarly, on GNOME Terminal 3.38.3 (as
preconfigured by Debian bullseye) `tty-type' returns "xterm-256color",
and setting `auto-composition-mode' to the latter works as expected.
> And which file in lisp/term/ does Alacritty load when you start the
> -nw session?
It loads lisp/term/xterm.el, I guess because `term-file-aliases' maps
"alacritty" to "xterm". (GNOME Terminal also loads that file.)
> I'm asking because perhaps we should disable auto-composition-mode by
> default on this terminal, like we do for the Linux console.
For the virtual console, that certainly makes sense (bug#50865). As for
which terminal emulators support such composition, that'd likely take
some legwork to determine. (Alacritty, for one, seems to have pegged
this feature as low priority [1].) If special casing seems premature, I
guess there's precedent for describing such issues in etc/PROBLEMS, as
was done with Kitty (bug#50983).
[1] https://github.com/alacritty/alacritty/issues/3975
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#56952
; Package
emacs
.
(Sat, 06 Aug 2022 16:21:02 GMT)
Full text and
rfc822 format available.
Message #22 received at 56952-done <at> debbugs.gnu.org (full text, mbox):
> From: "J.P." <jp <at> neverwas.me>
> Cc: 56952 <at> debbugs.gnu.org
> Date: Thu, 04 Aug 2022 05:55:45 -0700
>
> Eli Zaretskii <eliz <at> gnu.org> writes:
>
> > Can you tell which value of auto-composition-mode did the trick? Or
> > what is the value of tty-type on that terminal?
>
> On Alacritty 0.10.1 (with the example configuration loaded) `tty-type'
> returns "alacritty". And doing
>
> (setq-default auto-composition-mode "alacritty")
>
> inhibits auto composition. Similarly, on GNOME Terminal 3.38.3 (as
> preconfigured by Debian bullseye) `tty-type' returns "xterm-256color",
> and setting `auto-composition-mode' to the latter works as expected.
>
> > And which file in lisp/term/ does Alacritty load when you start the
> > -nw session?
>
> It loads lisp/term/xterm.el, I guess because `term-file-aliases' maps
> "alacritty" to "xterm". (GNOME Terminal also loads that file.)
>
> > I'm asking because perhaps we should disable auto-composition-mode by
> > default on this terminal, like we do for the Linux console.
>
> For the virtual console, that certainly makes sense (bug#50865). As for
> which terminal emulators support such composition, that'd likely take
> some legwork to determine. (Alacritty, for one, seems to have pegged
> this feature as low priority [1].) If special casing seems premature, I
> guess there's precedent for describing such issues in etc/PROBLEMS, as
> was done with Kitty (bug#50983).
Thanks. Done as you suggested, and closing.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Sun, 04 Sep 2022 11:24:08 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 288 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.