Example #1
0
File: keys.c Project: acklinr/vifm
/* Registers cmds[0 .. len-1] keys specified tree.  Returns non-zero on error,
 * otherwise zero is returned. */
static int
add_list_of_keys(key_chunk_t *root, keys_add_info_t cmds[], size_t len)
{
	int result = 0;
	size_t i;

	for(i = 0U; i < len; ++i)
	{
		key_chunk_t *const curr = add_keys_inner(root, cmds[i].keys);
		if(curr == NULL)
		{
			result = -1;
			continue;
		}

		curr->conf = cmds[i].info;
		if(curr->conf.nim)
		{
			curr->type = BUILTIN_NIM_KEYS;
		}
		else
		{
			curr->type = (curr->conf.followed == FOLLOWED_BY_NONE)
			           ? BUILTIN_KEYS
			           : BUILTIN_WAIT_POINT;
		}
	}

	return result;
}
Example #2
0
File: keys.c Project: jubalh/vifm
int
add_user_keys(const wchar_t *keys, const wchar_t *cmd, int mode, int no_r)
{
	key_chunk_t *curr;

	curr = add_keys_inner(&user_cmds_root[mode], keys);
	if(curr->conf.type == USER_CMD)
	{
		free((void*)curr->conf.data.cmd);
	}

	curr->conf.type = USER_CMD;
	curr->conf.data.cmd = vifm_wcsdup(cmd);
	curr->no_remap = no_r;
	return 0;
}
Example #3
0
File: keys.c Project: acklinr/vifm
int
vle_keys_user_add(const wchar_t lhs[], const wchar_t rhs[], int mode,
		int flags)
{
	key_chunk_t *curr = add_keys_inner(&user_cmds_root[mode], lhs);
	if(curr == NULL)
	{
		return -1;
	}

	if(curr->type == USER_CMD)
	{
		free(curr->conf.data.cmd);
	}

	curr->type = USER_CMD;
	curr->conf.data.cmd = vifm_wcsdup(rhs);
	curr->no_remap = ((flags & KEYS_FLAG_NOREMAP) != 0);
	curr->silent = ((flags & KEYS_FLAG_SILENT) != 0);
	return 0;
}
Example #4
0
File: keys.c Project: jubalh/vifm
TSTATIC key_conf_t *
add_selector(const wchar_t keys[], int mode)
{
	key_chunk_t *curr = add_keys_inner(&selectors_root[mode], keys);
	return &curr->conf;
}
Example #5
0
File: keys.c Project: jubalh/vifm
TSTATIC key_conf_t *
add_cmd(const wchar_t keys[], int mode)
{
	key_chunk_t *curr = add_keys_inner(&builtin_cmds_root[mode], keys);
	return &curr->conf;
}