Example #1
0
/*
 * 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;
  }
}
Example #2
0
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);
}
Example #3
0
int redis_key::del(const char* keys[], const size_t lens[], size_t argc)
{
	return del_keys(keys, lens, argc);
}
Example #4
0
int redis_key::del(const std::vector<const char*>& keys)
{
	return del_keys(keys);
}
Example #5
0
int redis_key::del(const std::vector<string>& keys)
{
	return del_keys(keys);
}