diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 5dc3de4422..0593d72279 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -3083,6 +3083,12 @@ mule--ucs-names-affixation (list name (concat (if char (format "%c" char) " ") "\t") ""))) names)) +(defun mule--ucs-names-sort-by-char (names) + (let* ((chars-and-names + (mapcar (lambda (name) (cons (gethash name ucs-names) name)) names)) + (sorted (sort chars-and-names (lambda (a b) (< (car a) (car b)))))) + (mapcar #'cdr sorted))) + (defun char-from-name (string &optional ignore-case) "Return a character as a number from its Unicode name STRING. If optional IGNORE-CASE is non-nil, ignore case in STRING. @@ -3132,6 +3138,7 @@ read-char-by-name (if (eq action 'metadata) '(metadata (affixation-function . mule--ucs-names-affixation) + (display-sort-function . mule--ucs-names-sort-by-char) (category . unicode-name)) (complete-with-action action (ucs-names) string pred))))) (char