emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/keyboard.c


From: Stefan Monnier
Subject: [Emacs-diffs] Changes to emacs/src/keyboard.c
Date: Tue, 02 Apr 2002 23:49:34 -0500

Index: emacs/src/keyboard.c
diff -c emacs/src/keyboard.c:1.667 emacs/src/keyboard.c:1.668
*** emacs/src/keyboard.c:1.667  Tue Apr  2 10:53:14 2002
--- emacs/src/keyboard.c        Tue Apr  2 23:49:33 2002
***************
*** 4762,4782 ****
                                      (sizeof (lispy_accent_keys)
                                       / sizeof (lispy_accent_keys[0])));
  
-       /* Handle system-specific keysyms.  */
-       if (event->code & (1 << 28))
-       {
-         /* We need to use an alist rather than a vector as the cache
-            since we can't make a vector long enuf.  */
-         if (NILP (current_kboard->system_key_syms))
-           current_kboard->system_key_syms = Fcons (Qnil, Qnil);
-         return modify_event_symbol (event->code,
-                                     event->modifiers,
-                                     Qfunction_key,
-                                     current_kboard->Vsystem_key_alist,
-                                     0, &current_kboard->system_key_syms,
-                                     (unsigned) -1);
-       }
- 
  #ifdef XK_kana_A
        if (event->code >= 0x400 && event->code < 0x500)
        return modify_event_symbol (event->code - 0x400,
--- 4762,4767 ----
***************
*** 4796,4825 ****
                                    iso_lispy_function_keys, &func_key_syms,
                                    (sizeof (iso_lispy_function_keys)
                                     / sizeof (iso_lispy_function_keys[0])));
-       else
  #endif
  
! #ifdef HAVE_X_WINDOWS
!       if (event->code - FUNCTION_KEY_OFFSET < 0
          || (event->code - FUNCTION_KEY_OFFSET
!             >= sizeof lispy_function_keys / sizeof *lispy_function_keys))
        {
!         /* EVENT->code is an unknown keysym, for example someone
!            assigned `ccaron' to a key in a locale where
!            XmbLookupString doesn't return a translation for it.  */
!         char *name;
!         Lisp_Object symbol;
!         
!         BLOCK_INPUT;
!         /* This returns a pointer to a static area.  Don't free it.  */
!         name = XKeysymToString (event->code);
!         symbol = name ? intern (name) : Qnil;
!         UNBLOCK_INPUT;
!         
!         if (!NILP (symbol))
!           return apply_modifiers (event->modifiers, symbol);
        }
- #endif /* HAVE_X_WINDOWS */
  
        return modify_event_symbol (event->code - FUNCTION_KEY_OFFSET,
                                  event->modifiers,
--- 4781,4806 ----
                                    iso_lispy_function_keys, &func_key_syms,
                                    (sizeof (iso_lispy_function_keys)
                                     / sizeof (iso_lispy_function_keys[0])));
  #endif
  
!       /* Handle system-specific or unknown keysyms.  */
!       if (event->code & (1 << 28)
!         || event->code - FUNCTION_KEY_OFFSET < 0
          || (event->code - FUNCTION_KEY_OFFSET
!             >= sizeof lispy_function_keys / sizeof *lispy_function_keys)
!         || !lispy_function_keys[event->code - FUNCTION_KEY_OFFSET])
        {
!         /* We need to use an alist rather than a vector as the cache
!            since we can't make a vector long enuf.  */
!         if (NILP (current_kboard->system_key_syms))
!           current_kboard->system_key_syms = Fcons (Qnil, Qnil);
!         return modify_event_symbol (event->code,
!                                     event->modifiers,
!                                     Qfunction_key,
!                                     current_kboard->Vsystem_key_alist,
!                                     0, &current_kboard->system_key_syms,
!                                     (unsigned) -1);
        }
  
        return modify_event_symbol (event->code - FUNCTION_KEY_OFFSET,
                                  event->modifiers,



reply via email to

[Prev in Thread] Current Thread [Next in Thread]