From df3fde6fa5366d02fb41d98962df0b2e1148d5b2 Mon Sep 17 00:00:00 2001 From: Lars Ingebrigtsen Date: Sun, 19 Dec 2021 19:53:04 +0100 Subject: [PATCH] Further fixes for emojis in the "people" categories * lisp/international/emoji.el (emoji--base-name): Get more derived categories right. --- lisp/international/emoji.el | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/lisp/international/emoji.el b/lisp/international/emoji.el index d0e906848cb..4375a6344c5 100644 --- a/lisp/international/emoji.el +++ b/lisp/international/emoji.el @@ -412,18 +412,26 @@ the name is not known." (write-region (point-min) (point-max) file))) (defun emoji--base-name (name derivations) - (let* ((base (replace-regexp-in-string ":.*" "" name)) - (non-binary (replace-regexp-in-string "\\`\\(man\\|woman\\) " "" - base))) - ;; If we have (for instance) "person golfing", and we're adding - ;; "man golfing", make the latter a derivation of the former. - (cond - ((gethash (concat "person " non-binary) derivations) - (concat "person " non-binary)) - ((gethash non-binary derivations) - non-binary) - (t - base)))) + (let* ((base (replace-regexp-in-string ":.*" "" name))) + (catch 'found + ;; If we have (for instance) "person golfing", and we're adding + ;; "man golfing", make the latter a derivation of the former. + (let ((non-binary (replace-regexp-in-string + "\\`\\(m[ae]n\\|wom[ae]n\\) " "" base))) + (dolist (prefix '("person " "people " "")) + (let ((key (concat prefix non-binary))) + (when (gethash key derivations) + (throw 'found key))))) + ;; We can also have the gender at the end of the string, like + ;; "merman" and "pregnant woman". + (let ((non-binary (replace-regexp-in-string + "\\(m[ae]n\\|wom[ae]n\\|maid\\)\\'" "" base))) + (dolist (suffix '(" person" "person" "")) + (let ((key (concat non-binary suffix))) + (when (gethash key derivations) + (throw 'found key))))) + ;; Just return the base. + base))) (defun emoji--split-subgroup (subgroup) (let ((prefixes '("face" "hand" "person" "animal" "plant" -- 2.39.2