Subject: bug#57214: 29.0.50; Incorrect rendering of Emoji (grapheme cluster) in Org heading

From: Protesilaos Stavrou <[email-masked]>
Date: Sun, 14 Aug 2022 21:47:21 +0300

Dear maintainers,

I have encountered a bug where grapheme clusters are not rendered
properly when used inside of a folded heading in Org.

Steps to reproduce with 'emacs -Q':

1. Evaluate:

      (setq org-pretty-entties t
            org-ellipsis " ☀️")

2. Either visit an existing Org file or use the attached sample.

3. Fold a heading in Org by pressing TAB with point somewhere on the
   heading.

4. Notice the incorrectly rendered sun emoji at the end of the folded
   heading.

If I change 'org-ellipsis' to a single character emoji, such as the
generic smile, the problem no longer occurs:

* Evaluate:

      (setq org-ellipsis " 😀")

* Then in the Org file do 'M-x org-mode-restart'.

The smile emoji renders properly at the end of the folded heading's
line.

The attached screenshots show the different results.

All the best,
Protesilaos (or simply "Prot")

* * *

In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.34, cairo version 1.17.6)
 of 2022-08-14 built on kronos
Repository revision: b93e14fa0fd5833adbdd88ec86fccc4b59172302
Repository branch: master
System Description: Arch Linux

Configured using:
 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
 --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
 --without-libotf --without-m17n-flt --without-gconf
 --with-native-compilation --with-pgtk --with-sound=no --without-gpm
 --without-compress-install
 '--program-transform-name=s/\([ec]tags\)/\1.emacs/'
 'CFLAGS=-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions
 -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security
 -fstack-clash-protection -fcf-protection'
 LDFLAGS=-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON
LCMS2 LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK
PNG RSVG SECCOMP SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS WEBP XIM GTK3
ZLIB

-- 
Protesilaos Stavrou
https://protesilaos.com