diff options
| author | Stefan Monnier | 2003-04-30 21:04:13 +0000 |
|---|---|---|
| committer | Stefan Monnier | 2003-04-30 21:04:13 +0000 |
| commit | 65470b5257ab64fe936fabd545446e4306c0a3ef (patch) | |
| tree | 8abc6d5ab2280a633ad18ed8aad5406e51f393e6 /src | |
| parent | e3d2084cb13aa84751c8052fb16b30fb60b6f6e3 (diff) | |
| download | emacs-65470b5257ab64fe936fabd545446e4306c0a3ef.tar.gz emacs-65470b5257ab64fe936fabd545446e4306c0a3ef.zip | |
(parse_modifiers_uncached): Parse `down', `drag',
`double', and `triple' modifiers as well.
Diffstat (limited to 'src')
| -rw-r--r-- | src/keyboard.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index e2e61d25798..70c9d90530d 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -5844,6 +5844,26 @@ parse_modifiers_uncached (symbol, modifier_end) | |||
| 5844 | break; | 5844 | break; |
| 5845 | 5845 | ||
| 5846 | #undef SINGLE_LETTER_MOD | 5846 | #undef SINGLE_LETTER_MOD |
| 5847 | |||
| 5848 | #define MULTI_LETTER_MOD(BIT, NAME, LEN) \ | ||
| 5849 | if (i + LEN + 1 <= SBYTES (name) \ | ||
| 5850 | && ! strncmp (SDATA (name) + i, NAME, LEN)) \ | ||
| 5851 | { \ | ||
| 5852 | this_mod_end = i + LEN; \ | ||
| 5853 | this_mod = BIT; \ | ||
| 5854 | } | ||
| 5855 | |||
| 5856 | case 'd': | ||
| 5857 | MULTI_LETTER_MOD (drag_modifier, "drag", 4); | ||
| 5858 | MULTI_LETTER_MOD (down_modifier, "down", 4); | ||
| 5859 | MULTI_LETTER_MOD (double_modifier, "double", 6); | ||
| 5860 | break; | ||
| 5861 | |||
| 5862 | case 't': | ||
| 5863 | MULTI_LETTER_MOD (triple_modifier, "triple", 6); | ||
| 5864 | break; | ||
| 5865 | #undef MULTI_LETTER_MOD | ||
| 5866 | |||
| 5847 | } | 5867 | } |
| 5848 | 5868 | ||
| 5849 | /* If we found no modifier, stop looking for them. */ | 5869 | /* If we found no modifier, stop looking for them. */ |