/* * Check keyboard buffer for key sequences. */ void check_for_key(int del_garbage) { unsigned u, len; kbd.key = 0; if(!kbd.pos) return; if(config.debug >= 4) { fprintf(stderr, "kbd buffer(%d):", del_garbage); for(u = 0; u < kbd.pos; u++) { fprintf(stderr, " 0x%02x", kbd.buffer[u]); } fprintf(stderr, "\n"); } /* look for esc sequences */ for(u = 0; u < sizeof key_list / sizeof *key_list; u++) { len = strlen(key_list[u].bytes); if(len && len <= kbd.pos && !memcmp(kbd.buffer, key_list[u].bytes, len)) { kbd.key = key_list[u].key; del_keys(len); // fprintf(stderr, "-> key = 0x%02x\n", kbd.key); return; } } /* kill unknown esc sequences */ if(del_garbage && kbd.buffer[0] == '\x1b' && kbd.pos > 1) { kbd.key = 0; del_keys(kbd.pos); return; } /* utf8 sequence */ if(kbd.buffer[0] != '\x1b') { u = utf8_enc_len(kbd.buffer[0]); if(u && u <= kbd.pos) { kbd.key = utf8_decode(kbd.buffer); del_keys(u); // fprintf(stderr, "utf8(%u) = 0x%02x\n", u, kbd.key); return; } } /* kill remaining stuff */ if(del_garbage) { /* basically for 'Esc' */ if(kbd.pos == 1) kbd.key = kbd.buffer[0]; del_keys(kbd.pos); return; } }
int tc_action_keys(t_sh *shell, t_term *term, long key) { if (del_keys(shell, term, key)) return (1); else if (move_keys(shell, term, key)) return (2); else if (cpycut_keys(shell, term, key)) return (3); else if (last_yank_key(shell, term, key)) return (4); else return (0); }
int redis_key::del(const char* keys[], const size_t lens[], size_t argc) { return del_keys(keys, lens, argc); }
int redis_key::del(const std::vector<const char*>& keys) { return del_keys(keys); }
int redis_key::del(const std::vector<string>& keys) { return del_keys(keys); }