From: Visuwesh <visuweshm@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: "समीर सिंह Sameer Singh" <lumarzeli30@gmail.com>, 58376@debbugs.gnu.org
Subject: bug#58376: [PATCH] Set the PARENTS argument for language environments
Date: Sun, 09 Oct 2022 20:20:36 +0530 [thread overview]
Message-ID: <87wn99oxtv.fsf@gmail.com> (raw)
In-Reply-To: <838rlpjfmr.fsf@gnu.org> (Eli Zaretskii's message of "Sun, 09 Oct 2022 16:22:36 +0300")
[-- Attachment #1: Type: text/plain, Size: 1195 bytes --]
[ஞாயிறு அக்டோபர் 09, 2022] Eli Zaretskii wrote:
>> If I do something like:
>>
>> (set-language-info-alist
>> "Kharoshthi" '((charset unicode)
>> (coding-system utf-8)
>> (coding-priority utf-8)
>> (input-method . "kharoshthi")
>> (sample-text . "Kharoṣṭhī (𐨑𐨪𐨆𐨛𐨁) 𐨣𐨨𐨲𐨪𐨆 𐨐𐨪𐨅𐨨𐨁")
>> (documentation . "\
>> Language environment for Gāndhārī, Sanskrit, and other languages
>> using the Kharoṣṭhī script."))
>> '("Misc" "Indian"))
>>
>> Then compile and open emacs -Q
>> Now opening Options>Multilingual Environment>Set Language Environment>Indian
>> It only has the Kharoshthi entry
>> Options>Multilingual Environment>Set Language Environment>Misc now also has an Indian submenu with
>> only Kharoshthi entry.
>
> Hmm... Either we don't understand what PARENTS mean (could it mean a
> hierarchy of several menu levels?), or there is a bug.
>
> If you want to work on that, please do; otherwise I'll just install
> your original patch.
Attached patch puts the "Kharosthi" item in both Indian and Misc
submenus without overwriting.
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: set-language-info-alist.patch --]
[-- Type: text/x-diff, Size: 1977 bytes --]
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)))
[-- Attachment #3: Type: text/plain, Size: 279 bytes --]
The problem is that when looping, the variables setup-map and
describe-map gets outdated and causes the overwrite. The solution I
came up with was to update them both to their default after each
iteration. This involved moving the keymap-setting forms to a separate
function.
next prev parent reply other threads:[~2022-10-09 14:50 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-08 11:12 bug#58376: [PATCH] Set the PARENTS argument for language environments समीर सिंह Sameer Singh
2022-10-08 11:15 ` समीर सिंह Sameer Singh
2022-10-08 14:46 ` Eli Zaretskii
2022-10-08 16:18 ` समीर सिंह Sameer Singh
2022-10-08 18:16 ` Eli Zaretskii
2022-10-08 19:16 ` समीर सिंह Sameer Singh
2022-10-09 8:29 ` Eli Zaretskii
2022-10-09 10:28 ` समीर सिंह Sameer Singh
2022-10-09 13:22 ` Eli Zaretskii
2022-10-09 13:59 ` समीर सिंह Sameer Singh
2022-10-09 14:23 ` Eli Zaretskii
2022-10-09 14:46 ` समीर सिंह Sameer Singh
2022-10-09 14:55 ` Eli Zaretskii
2022-10-09 14:50 ` Visuwesh [this message]
2022-10-09 15:06 ` Visuwesh
2022-10-09 15:30 ` Visuwesh
2022-10-10 14:06 ` समीर सिंह Sameer Singh
2022-10-10 14:32 ` Visuwesh
2022-10-10 14:38 ` समीर सिंह Sameer Singh
2022-10-10 15:59 ` Visuwesh
2022-10-10 18:38 ` समीर सिंह Sameer Singh
2022-10-30 8:22 ` समीर सिंह Sameer Singh
2022-10-30 8:43 ` Eli Zaretskii
2022-10-30 9:30 ` समीर सिंह Sameer Singh
2022-10-30 10:20 ` Eli Zaretskii
2022-10-30 10:31 ` समीर सिंह Sameer Singh
2022-10-30 11:18 ` Eli Zaretskii
2022-10-30 11:19 ` समीर सिंह Sameer Singh
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87wn99oxtv.fsf@gmail.com \
--to=visuweshm@gmail.com \
--cc=58376@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=lumarzeli30@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).