version 1.66, 2021/08/11 20:49:55 |
version 1.67, 2021/08/20 19:50:17 |
|
|
cmd_send_keys_inject_string(struct cmdq_item *item, struct cmdq_item *after, |
cmd_send_keys_inject_string(struct cmdq_item *item, struct cmdq_item *after, |
struct args *args, int i) |
struct args *args, int i) |
{ |
{ |
const char *s = args->argv[i]; |
const char *s = args_string(args, i); |
struct utf8_data *ud, *loop; |
struct utf8_data *ud, *loop; |
utf8_char uc; |
utf8_char uc; |
key_code key; |
key_code key; |
|
|
struct mouse_event *m = &event->m; |
struct mouse_event *m = &event->m; |
struct window_mode_entry *wme = TAILQ_FIRST(&wp->modes); |
struct window_mode_entry *wme = TAILQ_FIRST(&wp->modes); |
struct cmdq_item *after = item; |
struct cmdq_item *after = item; |
int i; |
|
key_code key; |
key_code key; |
u_int np = 1; |
u_int i, np = 1; |
|
u_int count = args_count(args); |
char *cause = NULL; |
char *cause = NULL; |
|
|
if (args_has(args, 'N')) { |
if (args_has(args, 'N')) { |
|
|
free(cause); |
free(cause); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
if (wme != NULL && (args_has(args, 'X') || args->argc == 0)) { |
if (wme != NULL && (args_has(args, 'X') || count == 0)) { |
if (wme->mode->command == NULL) { |
if (wme->mode->command == NULL) { |
cmdq_error(item, "not in a mode"); |
cmdq_error(item, "not in a mode"); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
|
|
} |
} |
|
|
for (; np != 0; np--) { |
for (; np != 0; np--) { |
for (i = 0; i < args->argc; i++) { |
for (i = 0; i < count; i++) { |
after = cmd_send_keys_inject_string(item, after, args, |
after = cmd_send_keys_inject_string(item, after, args, |
i); |
i); |
} |
} |