int strtokey(const char **pp) { const char *p; int key; /* XXX: handle all cases */ p = *pp; if (p[0] == 'C' && p[1] == '-') { /* control */ p += 2; key = strtokey1(p); if (key >= 'a' && key <= 'z') key = KEY_CTRL(key); } else if (p[0] == 'M' && p[1] == '-') { p += 2; key = strtokey1(p); if ((key >= 'a' && key <= 'z') || key == KEY_BACKSPACE) key = KEY_META(key); } else { key = strtokey1(p); } while (*p != ' ' && *p != '\0') p++; *pp = p; return key; }
int strtokey(const char **pp) { const char *p; int key; p = *pp; if (p[0] == 'M' && p[1] == '-') { p += 2; key = KEY_META(strtokey1(&p)); } else if (p[0] == 'C' && p[1] == '-' && p[0] == 'M' && p[1] == '-') { p += 4; key = KEY_META(KEY_CTRL(strtokey1(&p))); } else { key = strtokey1(&p); } *pp = p; return key; }