* bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output
@ 2022-08-03 13:42 J.P.
2022-08-03 14:28 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: J.P. @ 2022-08-03 13:42 UTC (permalink / raw)
To: 56952
[-- Attachment #1: Type: text/plain, Size: 3870 bytes --]
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))
[-- Attachment #2: bug_report_terminal.png --]
[-- Type: image/png, Size: 44376 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output
2022-08-03 13:42 bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output J.P.
@ 2022-08-03 14:28 ` Eli Zaretskii
2022-08-03 19:42 ` J.P.
0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2022-08-03 14:28 UTC (permalink / raw)
To: J.P.; +Cc: 56952
> From: "J.P." <jp@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.)
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output
2022-08-03 14:28 ` Eli Zaretskii
@ 2022-08-03 19:42 ` J.P.
2022-08-04 5:28 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: J.P. @ 2022-08-03 19:42 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 56952-done
Eli Zaretskii <eliz@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.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output
2022-08-03 19:42 ` J.P.
@ 2022-08-04 5:28 ` Eli Zaretskii
2022-08-04 12:55 ` J.P.
0 siblings, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2022-08-04 5:28 UTC (permalink / raw)
To: J.P.; +Cc: 56952
> From: "J.P." <jp@neverwas.me>
> Cc: 56952-done@debbugs.gnu.org
> Date: Wed, 03 Aug 2022 12:42:32 -0700
>
> Eli Zaretskii <eliz@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.
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output
2022-08-04 5:28 ` Eli Zaretskii
@ 2022-08-04 12:55 ` J.P.
2022-08-06 16:20 ` Eli Zaretskii
0 siblings, 1 reply; 6+ messages in thread
From: J.P. @ 2022-08-04 12:55 UTC (permalink / raw)
To: Eli Zaretskii; +Cc: 56952
Eli Zaretskii <eliz@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
^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output
2022-08-04 12:55 ` J.P.
@ 2022-08-06 16:20 ` Eli Zaretskii
0 siblings, 0 replies; 6+ messages in thread
From: Eli Zaretskii @ 2022-08-06 16:20 UTC (permalink / raw)
To: J.P.; +Cc: 56952-done
> From: "J.P." <jp@neverwas.me>
> Cc: 56952@debbugs.gnu.org
> Date: Thu, 04 Aug 2022 05:55:45 -0700
>
> Eli Zaretskii <eliz@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.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2022-08-06 16:20 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-03 13:42 bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output J.P.
2022-08-03 14:28 ` Eli Zaretskii
2022-08-03 19:42 ` J.P.
2022-08-04 5:28 ` Eli Zaretskii
2022-08-04 12:55 ` J.P.
2022-08-06 16:20 ` Eli Zaretskii
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).