version 1.37, 2005/10/14 19:46:46 |
version 1.38, 2005/11/07 22:52:44 |
|
|
#endif /* !NO_STARTUP */ |
#endif /* !NO_STARTUP */ |
#endif /* FKEYS */ |
#endif /* FKEYS */ |
|
|
|
#include <ctype.h> |
|
|
static int remap(KEYMAP *, int, PF, KEYMAP *); |
static int remap(KEYMAP *, int, PF, KEYMAP *); |
static KEYMAP *reallocmap(KEYMAP *); |
static KEYMAP *reallocmap(KEYMAP *); |
static void fixmap(KEYMAP *, KEYMAP *, KEYMAP *); |
static void fixmap(KEYMAP *, KEYMAP *, KEYMAP *); |
|
|
|
|
for (i = 0; *str && i < MAXKEY; i++) { |
for (i = 0; *str && i < MAXKEY; i++) { |
/* XXX - convert numbers w/ strol()? */ |
/* XXX - convert numbers w/ strol()? */ |
if (*str != '\\') |
if (*str == '^' && *(str + 1) != '\0') { |
key.k_chars[i] = *str; |
key.k_chars[i] = CCHR(toupper(*++str)); |
else { |
} else if (*str == '\\' && *(str + 1) != '\0') { |
switch (*++str) { |
switch (*++str) { |
|
case '^': |
|
key.k_chars[i] = '^'; |
|
break; |
case 't': |
case 't': |
case 'T': |
case 'T': |
key.k_chars[i] = '\t'; |
key.k_chars[i] = '\t'; |
|
|
case 'E': |
case 'E': |
key.k_chars[i] = CCHR('['); |
key.k_chars[i] = CCHR('['); |
break; |
break; |
|
case '\\': |
|
key.k_chars[i] = '\\'; |
|
break; |
} |
} |
} |
} else |
|
key.k_chars[i] = *str; |
str++; |
str++; |
} |
} |
key.k_count = i; |
key.k_count = i; |