Subject: bug#56952: 29.0.50; Emoji skin-tone modifiers disrupt terminal output

From: Eli Zaretskii <[email-masked]>
Date: Wed, 03 Aug 2022 17:28:06 +0300

> From: "J.P." <[email-masked]>
> 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.)