本家 beta ML をフォローしきれていないので よく分かっていないのですが、
最近の CVS 版はメニューやダイアログへの英語以外の文字表示に
対応つつあるみたいですね。
とりあえず、ぼくのところでは、次パートのような変更をすると、
--with-xfs で日本語メニューその他を表示できるようになりました。
方針として良いのかどうか、よく分かりませんが、
widget-coding-system というのを設けて、メニューその他の表示向け
に変換してます。
;; ex. (set-widget-coding-system 'euc-japan) のような設定が必要。
Index: lisp/coding.el
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/lisp/coding.el,v
retrieving revision 1.2.2.6
diff -u -r1.2.2.6 coding.el
--- coding.el 2000/03/01 06:12:51 1.2.2.6
+++ coding.el 2000/09/04 06:39:04
@@ -124,6 +124,16 @@
(device-console) terminal-coding-system))
(redraw-modeline t))
+(defsubst widget-coding-system ()
+ "Return coding-system for widget label."
+ widget-label-coding-system)
+
+(defun set-widget-coding-system (coding-system)
+ "Set the coding system used for widget label."
+ (interactive "zwidget-coding-system: ")
+ (get-coding-system coding-system) ; correctness check
+ (setq widget-coding-system coding-system))
+
(defun set-pathname-coding-system (coding-system)
"Set the coding system used for file system path names."
(interactive "zPathname-coding-system: ")
Index: src/console-x.h
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/console-x.h,v
retrieving revision 1.11.2.10
diff -u -r1.11.2.10 console-x.h
--- console-x.h 2000/07/21 10:15:52 1.11.2.10
+++ console-x.h 2000/09/04 06:39:24
@@ -495,7 +495,11 @@
/* !!#### Need to verify the encoding used in lwlib -- Qnative or Qctext?
Almost certainly the former. Use a standin for now. */
+#ifdef MULE
+#define Qlwlib_encoding Fget_coding_system (Vwidget_coding_system)
+#else
#define Qlwlib_encoding Qnative
+#endif /* MULE */
#define Qx_atom_name_encoding Qctext
/* font names are often stored in atoms, so it gets sticky if we set this
Index: src/file-coding.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/file-coding.c,v
retrieving revision 1.7.2.42
diff -u -r1.7.2.42 file-coding.c
--- file-coding.c 2000/08/04 14:06:11 1.7.2.42
+++ file-coding.c 2000/09/04 06:39:34
@@ -41,6 +41,7 @@
Lisp_Object Vkeyboard_coding_system;
Lisp_Object Vterminal_coding_system;
+Lisp_Object Vwidget_coding_system;
Lisp_Object Vcoding_system_for_read;
Lisp_Object Vcoding_system_for_write;
Lisp_Object Vfile_name_coding_system;
@@ -5727,6 +5728,10 @@
Not used under a windowing system.
*/ );
Vterminal_coding_system = Qnil;
+
+ DEFVAR_LISP ("widget-coding-system", &Vwidget_coding_system /*
+Coding system used for widget label display. */ );
+ Vwidget_coding_system = Qnil;
DEFVAR_LISP ("coding-system-for-read", &Vcoding_system_for_read /*
Overriding coding system used when reading from a file or process.
Index: src/gui-x.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/gui-x.c,v
retrieving revision 1.14.2.30
diff -u -r1.14.2.30 gui-x.c
--- gui-x.c 2000/08/23 11:27:52 1.14.2.30
+++ gui-x.c 2000/09/04 06:39:36
@@ -371,10 +371,19 @@
LISP_STRING_TO_EXTERNAL_MALLOC (string, retval, Qlwlib_encoding);
else
{
- Bufbyte *chars = (Bufbyte *) alloca (strlen (name) + 3);
- chars[0] = '%';
- chars[1] = '_';
- memcpy (chars + 2, name, strlen (name) + 1);
+ Bufbyte *chars;
+ if ('A' <= name[0] && name[0] <= 'Z' ||
+ 'a' <= name[0] && name[0] <= 'z')
+ {
+ chars = (Bufbyte *) alloca (strlen (name) + 3);
+ chars[0] = '%';
+ chars[1] = '_';
+ memcpy (chars + 2, name, strlen (name) + 1);
+ }
+ else
+ {
+ chars = xstrdup (name);
+ }
C_STRING_TO_EXTERNAL_MALLOC (chars, retval, Qlwlib_encoding);
}
Index: src/lisp.h
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/lisp.h,v
retrieving revision 1.38.2.74
diff -u -r1.38.2.74 lisp.h
--- lisp.h 2000/08/06 09:27:18 1.38.2.74
+++ lisp.h 2000/09/04 06:39:43
@@ -3226,6 +3226,6 @@
extern Lisp_Object Vstandard_input, Vstandard_output, Vstdio_str;
extern Lisp_Object Vsynchronous_sounds, Vsystem_name, Vterminal_coding_system;
extern Lisp_Object Vthis_command_keys, Vunread_command_event;
-extern Lisp_Object Vx_initial_argv_list;
+extern Lisp_Object Vwidget_coding_system, Vx_initial_argv_list;
#endif /* INCLUDED_lisp_h_ */
--
Yuuichi Teranishi (寺西裕一) <teranisi(a)gohome.org>
PGP 5.0i Public Key:
http://www.gohome.org/pgp5/teranisi.key
"The movement you need is on your shoulder..."