version 1.37, 2020/04/13 08:26:27 |
version 1.38, 2020/09/08 10:19:19 |
|
|
.name = "bind-key", |
.name = "bind-key", |
.alias = "bind", |
.alias = "bind", |
|
|
.args = { "nrN:T:", 2, -1 }, |
.args = { "nrN:T:", 1, -1 }, |
.usage = "[-nr] [-T key-table] [-N note] key " |
.usage = "[-nr] [-T key-table] [-N note] key " |
"command [arguments]", |
"[command [arguments]]", |
|
|
.flags = CMD_AFTERHOOK, |
.flags = CMD_AFTERHOOK, |
.exec = cmd_bind_key_exec |
.exec = cmd_bind_key_exec |
|
|
{ |
{ |
struct args *args = cmd_get_args(self); |
struct args *args = cmd_get_args(self); |
key_code key; |
key_code key; |
const char *tablename, *note; |
const char *tablename, *note = args_get(args, 'N'); |
struct cmd_parse_result *pr; |
struct cmd_parse_result *pr; |
char **argv = args->argv; |
char **argv = args->argv; |
int argc = args->argc, repeat; |
int argc = args->argc, repeat; |
|
|
tablename = "prefix"; |
tablename = "prefix"; |
repeat = args_has(args, 'r'); |
repeat = args_has(args, 'r'); |
|
|
if (argc == 2) |
if (argc != 1) { |
pr = cmd_parse_from_string(argv[1], NULL); |
if (argc == 2) |
else |
pr = cmd_parse_from_string(argv[1], NULL); |
pr = cmd_parse_from_arguments(argc - 1, argv + 1, NULL); |
else |
switch (pr->status) { |
pr = cmd_parse_from_arguments(argc - 1, argv + 1, NULL); |
case CMD_PARSE_EMPTY: |
switch (pr->status) { |
cmdq_error(item, "empty command"); |
case CMD_PARSE_EMPTY: |
return (CMD_RETURN_ERROR); |
cmdq_error(item, "empty command"); |
case CMD_PARSE_ERROR: |
return (CMD_RETURN_ERROR); |
cmdq_error(item, "%s", pr->error); |
case CMD_PARSE_ERROR: |
free(pr->error); |
cmdq_error(item, "%s", pr->error); |
return (CMD_RETURN_ERROR); |
free(pr->error); |
case CMD_PARSE_SUCCESS: |
return (CMD_RETURN_ERROR); |
break; |
case CMD_PARSE_SUCCESS: |
} |
break; |
note = args_get(args, 'N'); |
} |
key_bindings_add(tablename, key, note, repeat, pr->cmdlist); |
key_bindings_add(tablename, key, note, repeat, pr->cmdlist); |
|
} else |
|
key_bindings_add(tablename, key, note, repeat, NULL); |
return (CMD_RETURN_NORMAL); |
return (CMD_RETURN_NORMAL); |
} |
} |