The problem I'm reporting might be a problem of keeping 21.2 beta and
mule-base in synch - but this way 21.1.7 doesn't work correctly with
the current mule-base files. I decided therefore to send this to
xemacs-beta in the hope to get some clarifying comments if my approach
is the right way.
Ok, here's the problem:
Setting language support for any Cyrillic or Chinese variant leads to
the following error:
Lisp nesting exceeds `max-lisp-eval-depth'
The problem is an endless loop. The function set-language-environment
in lisp/mule/mule-cmds.el invokes the setup-function set by
set-language-info-alist. This setup function calls (for Cyrillic-ISO)
setup-cyrillic-iso-environment which calls again set-language-environment:
Here are the relevant calls:
From mule-base/cyril-util.el:
(defun
setup-cyrillic-iso-environment ()
"Setup multilingual environment (MULE) for Cyrillic ISO-8859-5 users."
(interactive)
(set-language-environment "Cyrillic-ISO"))
From: lisp/mule/cyrillic.el
(set-language-info-alist
"Cyrillic-ISO" '((setup-function . (setup-cyrillic-iso-environment
. setup-cyrillic-environment-map))
From lisp/mule/mule-cmds.el:
(defun set-language-environment
(language-name)
"Set up multi-lingual environment for using LANGUAGE-NAME.
This sets the coding system priority and the default input method
and sometimes other things."
(interactive (list (read-language-name 'setup-function
"Set language environment: ")))
(if language-name
(if (symbolp language-name)
(setq language-name (symbol-name language-name)))
(setq language-name "English"))
(if (null (get-language-info language-name 'setup-function))
(error "Language environment not defined: %S" language-name))
(funcall (get-language-info language-name 'setup-function))
What should be done? Looking at XEmacs 21.2 beta, it seems (sorry, I
don't know the code in enough details, yet) that we can remove the
setup-*environment function - or replace it by an internal function.
But removing the setup-function completly means that we have to change
mule-cmds (?) also since otherwise the language is not displayed in
the menu :-(.
The appended fix gets Chinese-GB working for me - but Chinese-BIG5
does not appear anymore in the menu :-(. Could somebody with more
knowledge of these functions help me to fix this?
Thanks,
Andreas
1999-09-29 Andreas Jaeger <aj(a)suse.de>
* mule/chinese.el: Use setup-chinese-gb-environment-internal as
setup function for Chinese-GB.
Remove setup-chinese-big5-environment for Chinise-BIG5 since it's
not needed (lead to an endless loop).
--- lisp/mule/chinese.el.~1~ Wed Feb 17 14:59:31 1999
+++ lisp/mule/chinese.el Wed Sep 29 09:52:29 1999
@@ -190,8 +190,7 @@
nil))
(set-language-info-alist
- "Chinese-GB" '((setup-function . (setup-chinese-gb-environment
- . setup-chinese-environment-map))
+ "Chinese-GB" '((setup-function . setup-chinese-gb-environment-internal)
(charset . (chinese-gb2312 sisheng))
(coding-system
. (cn-gb-2312 iso-2022-7bit hz-gb-2312))
@@ -240,9 +239,7 @@
(set-charset-ccl-program 'chinese-big5-2 ccl-encode-big5-font)
(set-language-info-alist
- "Chinese-BIG5" '((setup-function . (setup-chinese-big5-environment
- . setup-chinese-environment-map))
- (charset . (chinese-big5-1 chinese-big5-2))
+ "Chinese-BIG5" '((charset . (chinese-big5-1 chinese-big5-2))
(coding-system . (big5 iso-2022-7bit))
(sample-text . "Cantonese (�f�y,�s�F��) ����, �A�n")
(documentation . ("Support for Chinese Big5 character set."
--
Andreas Jaeger aj(a)suse.de aj(a)arthur.rhein-neckar.de
for pgp-key finger ajaeger(a)aixd1.rhrk.uni-kl.de