diff options
| author | Paul Eggert <eggert@cs.ucla.edu> | 2014-09-24 11:25:04 -0700 |
|---|---|---|
| committer | Paul Eggert <eggert@cs.ucla.edu> | 2014-09-24 11:25:04 -0700 |
| commit | cd812613c83e2d22a697a9312f9406a99bd8ae7d (patch) | |
| tree | 625bf083661d6c8ee0c2be920815df91ae1ba5f5 | |
| parent | 558eb84ff964453495099918a9689e769eb57838 (diff) | |
| download | emacs-cd812613c83e2d22a697a9312f9406a99bd8ae7d.tar.gz | |
* keyboard.c (make_lispy_event): Avoid unnecessary tests
of bit 28 and of whether an unsigned value is negative.
This simplifies the code a bit, and pacifies clang 3.4.
| -rw-r--r-- | src/ChangeLog | 6 | ||||
| -rw-r--r-- | src/keyboard.c | 43 |
2 files changed, 26 insertions, 23 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9e4492d2c90..9ee4a3de1d0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,9 @@ +2014-09-24 Paul Eggert <eggert@cs.ucla.edu> + + * keyboard.c (make_lispy_event): Avoid unnecessary tests + of bit 28 and of whether an unsigned value is negative. + This simplifies the code a bit, and pacifies clang 3.4. + 2014-09-24 Eli Zaretskii <eliz@gnu.org> * systime.h (Time): Define as size_t, to be consistent with 64-bit diff --git a/src/keyboard.c b/src/keyboard.c index 7625586650f..718614f080a 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -5548,30 +5548,27 @@ make_lispy_event (struct input_event *event) ARRAYELTS (iso_lispy_function_keys)); #endif - /* Handle system-specific or unknown keysyms. */ - if (event->code & (1 << 28) - || event->code - FUNCTION_KEY_OFFSET < 0 - || (event->code - FUNCTION_KEY_OFFSET - >= ARRAYELTS (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 enough. */ - if (NILP (KVAR (current_kboard, system_key_syms))) - kset_system_key_syms (current_kboard, Fcons (Qnil, Qnil)); - return modify_event_symbol (event->code, - event->modifiers, - Qfunction_key, - KVAR (current_kboard, Vsystem_key_alist), - 0, &KVAR (current_kboard, system_key_syms), - PTRDIFF_MAX); - } - - return modify_event_symbol (event->code - FUNCTION_KEY_OFFSET, + if ((FUNCTION_KEY_OFFSET <= event->code + && (event->code + < FUNCTION_KEY_OFFSET + ARRAYELTS (lispy_function_keys))) + && lispy_function_keys[event->code - FUNCTION_KEY_OFFSET]) + return modify_event_symbol (event->code - FUNCTION_KEY_OFFSET, + event->modifiers, + Qfunction_key, Qnil, + lispy_function_keys, &func_key_syms, + ARRAYELTS (lispy_function_keys)); + + /* Handle system-specific or unknown keysyms. + We need to use an alist rather than a vector as the cache + since we can't make a vector long enough. */ + if (NILP (KVAR (current_kboard, system_key_syms))) + kset_system_key_syms (current_kboard, Fcons (Qnil, Qnil)); + return modify_event_symbol (event->code, event->modifiers, - Qfunction_key, Qnil, - lispy_function_keys, &func_key_syms, - ARRAYELTS (lispy_function_keys)); + Qfunction_key, + KVAR (current_kboard, Vsystem_key_alist), + 0, &KVAR (current_kboard, system_key_syms), + PTRDIFF_MAX); #ifdef HAVE_NTGUI case MULTIMEDIA_KEY_EVENT: |
