diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el index 48e5c9aa1f..f39a4da439 100644 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@ -1208,6 +1208,16 @@ set-language-info-internal (list 'const lang)) (sort (mapcar 'car language-info-alist) 'string<)))))) +(defun set-language-info-setup-keymap (lang-env alist describe-map setup-map) + "Setup menu items for LANG-ENV. +See `set-language-info-alist' for details of other arguments." + (let ((doc (assq 'documentation alist))) + (when doc + (define-key-after describe-map (vector (intern lang-env)) + (cons lang-env 'describe-specified-language-support)))) + (define-key-after setup-map (vector (intern lang-env)) + (cons lang-env 'setup-specified-language-environment))) + (defun set-language-info-alist (lang-env alist &optional parents) "Store ALIST as the definition of language environment LANG-ENV. ALIST is an alist of KEY and INFO values. See the documentation of @@ -1252,16 +1262,11 @@ set-language-info-alist (define-key-after setup-map (vector parent-symbol) (cons parent map)))) (setq setup-map (symbol-value map)) - (setq l (cdr l))))) - - ;; Set up menu items for this language env. - (let ((doc (assq 'documentation alist))) - (when doc - (define-key-after describe-map (vector (intern lang-env)) - (cons lang-env 'describe-specified-language-support)))) - (define-key-after setup-map (vector (intern lang-env)) - (cons lang-env 'setup-specified-language-environment)) - + (setq l (cdr l)) + (set-language-info-setup-keymap lang-env alist describe-map setup-map) + (setq describe-map describe-language-environment-map) + (setq setup-map setup-language-environment-map))) + (set-language-info-setup-keymap lang-env alist describe-map setup-map)) (dolist (elt alist) (set-language-info-internal lang-env (car elt) (cdr elt)))