From 33584111a5a6146936f9b8c0a89aa907c4fc629c Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Mon, 9 Feb 2026 09:41:36 -0600 Subject: fix(font): prevent HarfBuzz SIGSEGV crash on emoji in mu4e headers Emacs 30.2 + HarfBuzz 12.3.2 segfaults when arabic-shape-gstring is called on emoji characters during mu4e header rendering. Disable Arabic composition ranges, set inhibit-compacting-font-caches, and disable auto-composition in mu4e-headers-mode. Remove duplicate bidi settings from system-defaults.el (already in early-init.el). --- modules/mail-config.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'modules/mail-config.el') diff --git a/modules/mail-config.el b/modules/mail-config.el index 28423f52..93989f97 100644 --- a/modules/mail-config.el +++ b/modules/mail-config.el @@ -16,10 +16,26 @@ ;; - followed by , (comma) next to each file you want to save, ;; - then RET (vertico-exit), to save selected attachments. ;; +;; Crash Fix: +;; auto-composition-mode is disabled in mu4e-headers-mode to prevent a +;; HarfBuzz SIGSEGV crash. Email subjects containing emoji trigger glyph +;; shaping via arabic-shape-gstring → hb_shape_full, which segfaults. +;; Disabling composition in headers is safe (no ligatures needed there). +;; ;;; Code: (require 'user-constants) +;; -------------------- HarfBuzz Crash Fix: Disable Composition --------------- +;; Disable auto-composition in mu4e headers to prevent SIGSEGV from HarfBuzz +;; when shaping emoji characters in email subjects. See Commentary above. + +(defun cj/disable-auto-composition () + "Disable `auto-composition-mode' in the current buffer." + (auto-composition-mode -1)) + +(add-hook 'mu4e-headers-mode-hook #'cj/disable-auto-composition) + ;; ------------------------------ Mark All Headers ----------------------------- ;; convenience function to mark all headers for an action -- cgit v1.2.3