From 0716d90fe9a19fb668fd0fc6890adc565205f8d5 Mon Sep 17 00:00:00 2001
From: Aaron Madlon-Kay <aaron@madlon-kay.com>
Date: Tue, 12 Dec 2023 23:21:22 +0900
Subject: [PATCH] lisp/org-entities.el: Fix safe value predicate for
 org-entities-user

* lisp/org-entities.el (org-entities--user-safe-p): Fix logic to
validate a list of entries, rather than a single entry.

Reported-by: "Aaron Madlon-Kay" <aaron@madlon-kay.com>
Link: https://list.orgmode.org/874jgn7f7s.fsf@localhost/

TINYCHANGE
---
 lisp/org-entities.el | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/lisp/org-entities.el b/lisp/org-entities.el
index 91c17f4d6..87d2fbe67 100644
--- a/lisp/org-entities.el
+++ b/lisp/org-entities.el
@@ -41,14 +41,19 @@ defgroup org-entities
 
 (defun org-entities--user-safe-p (v)
   "Non-nil if V is a safe value for `org-entities-user'."
-  (pcase v
-    (`nil t)
-    (`(,(and (pred stringp)
-	     (pred (string-match-p "\\`[a-zA-Z][a-zA-Z0-9]*\\'")))
-       ,(pred stringp) ,(pred booleanp) ,(pred stringp)
-       ,(pred stringp) ,(pred stringp) ,(pred stringp))
-     t)
-    (_ nil)))
+  (cond
+   ((not v) t)
+   ((listp v)
+    (seq-every-p
+     (lambda (e)
+       (pcase e
+         (`(,(and (pred stringp)
+	              (pred (string-match-p "\\`[a-zA-Z][a-zA-Z0-9]*\\'")))
+            ,(pred stringp) ,(pred booleanp) ,(pred stringp)
+            ,(pred stringp) ,(pred stringp) ,(pred stringp))
+          t)
+         (_ nil)))
+     v))))
 
 (defcustom org-entities-user nil
   "User-defined entities used in Org to produce special characters.
-- 
2.43.0

