xst: ⛩ (U+26E9, shinto shrine emoji) crashes xst

Rendering the character U+26E9 (Shinto Shrine Emoji) causes st to crash, resulting in the message:

X Error of failed request:  BadLength (poly request too large or internal Xlib length error)
  Major opcode of failed request:  139 (RENDER)
  Minor opcode of failed request:  20 (RenderAddGlyphs)
  Serial number of failed request:  4216
  Current serial number in output stream:  4241

Oddly, neither U+26E8 nor U+26EA cause a crash.

I discovered this when attempting to open an email with mutt which contained the emoji.

I’ve opened this issue here because my fork is based on xst, but I confirmed this to apply to suckless st (as of 21367a0) as well, so I’ve reported the issue to the dev@suckless.org mailing list.

$ uname -srvo
Linux 5.0.5-arch1-1-ARCH #1 SMP PREEMPT Wed Mar 27 17:53:10 UTC 2019 GNU/Linux
$ wmname
xmonad

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 1
  • Comments: 17 (4 by maintainers)

Most upvoted comments

@b0o Gotcha – thanks for bumping this thread with your workaround! I see you’ve made some other nice changes too (multiple unicode code points, configurable underline/strikethrough thickness). I will cherry pick those into a PR after the we sync with upstream.

@kierun I use Alacritty now mainly because I switched my WM to Sway (Wayland) and wanted to use a term with native Wayland support. I still think (x)st is an awesome terminal though.

I just wanted to share that I worked around this in my fork by adapting a fix which suckless used in the libsl library for the same bug: https://github.com/b0o/xst/commit/808292ca0b5c2d2a1277867b40fd933e776dbc75

@b0o Really off topic but I am sold on Alacritty, thank you!