version 1.20, 2017/10/22 13:16:54 |
version 1.21, 2017/10/25 11:26:11 |
|
|
struct window_tree_itemdata **item_list; |
struct window_tree_itemdata **item_list; |
u_int item_size; |
u_int item_size; |
|
|
struct client *client; |
|
const char *entered; |
const char *entered; |
|
|
struct cmd_find_state fs; |
struct cmd_find_state fs; |
|
|
} |
} |
|
|
static void |
static void |
window_tree_command_each(void* modedata, void* itemdata, __unused key_code key) |
window_tree_command_each(void* modedata, void* itemdata, struct client *c, |
|
__unused key_code key) |
{ |
{ |
struct window_tree_modedata *data = modedata; |
struct window_tree_modedata *data = modedata; |
struct window_tree_itemdata *item = itemdata; |
struct window_tree_itemdata *item = itemdata; |
|
|
|
|
name = window_tree_get_target(item, &fs); |
name = window_tree_get_target(item, &fs); |
if (name != NULL) |
if (name != NULL) |
mode_tree_run_command(data->client, &fs, data->entered, name); |
mode_tree_run_command(c, &fs, data->entered, name); |
free(name); |
free(name); |
} |
} |
|
|
|
|
if (data->dead) |
if (data->dead) |
return (0); |
return (0); |
|
|
data->client = c; |
|
data->entered = s; |
data->entered = s; |
|
mode_tree_each_tagged(data->data, window_tree_command_each, c, |
mode_tree_each_tagged(data->data, window_tree_command_each, KEYC_NONE, |
KEYC_NONE, 1); |
1); |
|
|
|
data->client = NULL; |
|
data->entered = NULL; |
data->entered = NULL; |
|
|
data->references++; |
data->references++; |
|
|
{ |
{ |
struct window_tree_modedata *data = wp->modedata; |
struct window_tree_modedata *data = wp->modedata; |
struct window_tree_itemdata *item; |
struct window_tree_itemdata *item; |
char *command, *name, *prompt; |
char *name, *prompt; |
struct cmd_find_state fs; |
struct cmd_find_state fs; |
int finished; |
int finished; |
u_int tagged; |
u_int tagged; |
|
|
break; |
break; |
case '\r': |
case '\r': |
item = mode_tree_get_current(data->data); |
item = mode_tree_get_current(data->data); |
command = xstrdup(data->command); |
|
name = window_tree_get_target(item, &fs); |
name = window_tree_get_target(item, &fs); |
window_pane_reset_mode(wp); |
|
if (name != NULL) |
if (name != NULL) |
mode_tree_run_command(c, NULL, command, name); |
mode_tree_run_command(c, NULL, data->command, name); |
|
finished = 1; |
free(name); |
free(name); |
free(command); |
break; |
return; |
|
} |
} |
if (finished) |
if (finished) |
window_pane_reset_mode(wp); |
window_pane_reset_mode(wp); |