User: aidan
Date: 05/03/29 04:59:34
Modified: xemacs/src ChangeLog event-Xt.c
Log:
Support X11 keysyms of the form UABCD.
Revision Changes Path
1.657 +6 -0 XEmacs/xemacs/lisp/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/ChangeLog,v
retrieving revision 1.656
retrieving revision 1.657
diff -u -p -r1.656 -r1.657
--- ChangeLog 2005/03/28 12:13:59 1.656
+++ ChangeLog 2005/03/29 02:58:56 1.657
@@ -1,3 +1,9 @@
+2005-03-29 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * startup.el (command-line): Move Mule initialisation before
+ window-system initialisation, because the latter depends on
+ Unicode support with X11 and Unicode keysyms.
+
2005-03-28 Aidan Kehoe <kehoea(a)parhasard.net>
* register.el (insert-register): Revert part of Ben's incomplete
1.54 +5 -4 XEmacs/xemacs/lisp/startup.el
Index: startup.el
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/lisp/startup.el,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -p -r1.53 -r1.54
--- startup.el 2005/01/26 04:56:18 1.53
+++ startup.el 2005/03/29 02:58:59 1.54
@@ -703,6 +703,11 @@ If this is nil, no message will be displ
(when (featurep 'toolbar)
(init-toolbar-location))
+ ;; Setup coding systems and Unicode support--needs to be before X11
+ ;; initialisation in case of keysyms of the form UABCD.
+ (when (featurep 'mule)
+ (declare-fboundp (init-mule-at-startup)))
+
(if (featurep 'toolbar)
(if (featurep 'infodock)
(require 'id-x-toolbar)
@@ -736,10 +741,6 @@ If this is nil, no message will be displ
;; In this case, I completely agree. --ben
(if (featurep 'menubar)
(init-menubar-at-startup))
- ;; perhaps this should go earlier in the process?
- (if (featurep 'mule)
- (declare-fboundp (init-mule-at-startup)))
-
;;
;; We have normality, I repeat, we have normality. Anything you still
;; can't cope with is therefore your own problem. (And we don't need
1.818 +6 -0 XEmacs/xemacs/src/ChangeLog
Index: ChangeLog
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/ChangeLog,v
retrieving revision 1.817
retrieving revision 1.818
diff -u -p -r1.817 -r1.818
--- ChangeLog 2005/03/29 02:52:42 1.817
+++ ChangeLog 2005/03/29 02:59:13 1.818
@@ -1,3 +1,9 @@
+2005-03-29 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * event-Xt.c: Declare Funicode_to_char.
+ * event-Xt.c (x_keysym_to_character): Use it, if we're handed a
+ keysym for which it's appropriate.
+
2005-03-26 Jerry James <james(a)xemacs.org>
* dumper.c (BACKTRACE_MAX): New constant defining length of static
1.83 +11 -0 XEmacs/xemacs/src/event-Xt.c
Index: event-Xt.c
===================================================================
RCS file: /pack/xemacscvs/XEmacs/xemacs/src/event-Xt.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -p -r1.82 -r1.83
--- event-Xt.c 2005/01/24 23:33:52 1.82
+++ event-Xt.c 2005/03/29 02:59:21 1.83
@@ -71,6 +71,8 @@ Boston, MA 02111-1307, USA. */
extern int mswindows_is_blocking;
#endif
+EXFUN (Funicode_to_char, 2); /* In unicode.c. */
+
/* used in glyphs-x.c */
void enqueue_focus_event (Widget wants_it, Lisp_Object frame, int in_p);
static void handle_focus_event_1 (struct frame *f, int in_p);
@@ -200,6 +202,15 @@ x_keysym_to_character (KeySym keysym)
if ((keysym & 0xff) < 0xa0)
return Qnil;
+
+ /* The spec says keysyms in the range #x01000100 to #x0110FFFF and
+ only those should correspond directly to Unicode code points, in
+ the range #x100-#x10FFFF; actual implementations can have the Latin
+ 1 code points do the same thing with keysyms
+ #x010000A0-#x01000100. Oops. */
+
+ if (keysym >= 0x010000A0 && keysym <= 0x0110FFFF)
+ return Funicode_to_char (make_int(keysym & 0xffffff), Qnil);
switch (keysym >> 8)
{
Show replies by date