void cmd_previous_window_init(struct cmd *self, int key) { struct cmd_target_data *data; cmd_target_init(self, key); data = self->data; if (key == KEYC_ADDESC('p')) data->flags |= CMD_AFLAG; }
void cmd_previous_window_init(struct cmd *self, int key) { struct cmd_target_data *data; cmd_target_init(self, key); data = self->data; if (key == ('p' | KEYC_ESCAPE)) cmd_set_flag(&data->chflags, 'a'); }
void cmd_copy_mode_init(struct cmd *self, int key) { struct cmd_target_data *data; cmd_target_init(self, key); data = self->data; switch (key) { case KEYC_PPAGE: cmd_set_flag(&data->chflags, 'u'); break; } }
void cmd_scroll_mode_init(struct cmd *self, int key) { struct cmd_target_data *data; cmd_target_init(self, key); data = self->data; switch (key) { case KEYC_PPAGE: data->flags |= CMD_UFLAG; break; } }
void cmd_select_pane_init(struct cmd *self, int key) { struct cmd_target_data *data; cmd_target_init(self, key); data = self->data; if (key == KEYC_UP) cmd_set_flag(&data->chflags, 'U'); if (key == KEYC_DOWN) cmd_set_flag(&data->chflags, 'D'); if (key == KEYC_LEFT) cmd_set_flag(&data->chflags, 'L'); if (key == KEYC_RIGHT) cmd_set_flag(&data->chflags, 'R'); if (key == 'o') data->target = xstrdup(":.+"); }
void cmd_command_prompt_init(struct cmd *self, int key) { struct cmd_target_data *data; cmd_target_init(self, key); data = self->data; switch (key) { case ',': data->arg = xstrdup("rename-window '%%'"); break; case '.': data->arg = xstrdup("move-window -t '%%'"); break; case 'f': data->arg = xstrdup("find-window '%%'"); break; } }
void cmd_select_layout_init(struct cmd *self, int key) { struct cmd_target_data *data; cmd_target_init(self, key); data = self->data; switch (key) { case KEYC_ADDESC('0'): data->arg = xstrdup("manual-vertical"); break; case KEYC_ADDESC('1'): data->arg = xstrdup("even-horizontal"); break; case KEYC_ADDESC('2'): data->arg = xstrdup("even-vertical"); break; case KEYC_ADDESC('9'): data->arg = xstrdup("active-only"); break; } }
int cmd_target_parse(struct cmd *self, int argc, char **argv, char **cause) { struct cmd_target_data *data; const struct cmd_entry *entry = self->entry; int opt; /* Don't use the entry version since it may be dependent on key. */ cmd_target_init(self, 0); data = self->data; while ((opt = cmd_getopt(argc, argv, "t:", entry->chflags)) != -1) { if (cmd_parse_flags(opt, entry->chflags, &data->chflags) == 0) continue; switch (opt) { case 't': if (data->target == NULL) data->target = xstrdup(optarg); break; default: goto usage; } } argc -= optind; argv += optind; if (cmd_fill_argument( self->entry->flags, &data->arg, &data->arg2, argc, argv) != 0) goto usage; return (0); usage: xasprintf(cause, "usage: %s %s", self->entry->name, self->entry->usage); self->entry->free(self); return (-1); }