changeset 50758:ee55f23e4fbc

(parse_modifiers_uncached): Parse `down', `drag', `double', and `triple' modifiers as well.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 30 Apr 2003 21:04:13 +0000
parents 89533dc3e837
children 7b1710f096a3
files src/keyboard.c
diffstat 1 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/keyboard.c	Wed Apr 30 21:01:05 2003 +0000
+++ b/src/keyboard.c	Wed Apr 30 21:04:13 2003 +0000
@@ -5844,6 +5844,26 @@
 	  break;
 
 #undef SINGLE_LETTER_MOD
+
+#define MULTI_LETTER_MOD(BIT, NAME, LEN)			\
+	  if (i + LEN + 1 <= SBYTES (name)			\
+	      && ! strncmp (SDATA (name) + i, NAME, LEN))	\
+	    {							\
+	      this_mod_end = i + LEN;				\
+	      this_mod = BIT;					\
+	    }
+
+	case 'd':
+	  MULTI_LETTER_MOD (drag_modifier, "drag", 4);
+	  MULTI_LETTER_MOD (down_modifier, "down", 4);
+	  MULTI_LETTER_MOD (double_modifier, "double", 6);
+	  break;
+
+	case 't':
+	  MULTI_LETTER_MOD (triple_modifier, "triple", 6);
+	  break;
+#undef MULTI_LETTER_MOD
+
 	}
 
       /* If we found no modifier, stop looking for them.  */