mirror of
https://github.com/tmux/tmux.git
synced 2025-01-12 11:18:48 +00:00
Expand name before looking for window with -S, GitHub issue 3670.
This commit is contained in:
parent
c1e6e54e6e
commit
c41d59f232
@ -60,7 +60,7 @@ cmd_new_window_exec(struct cmd *self, struct cmdq_item *item)
|
|||||||
struct session *s = target->s;
|
struct session *s = target->s;
|
||||||
struct winlink *wl = target->wl, *new_wl = NULL;
|
struct winlink *wl = target->wl, *new_wl = NULL;
|
||||||
int idx = target->idx, before;
|
int idx = target->idx, before;
|
||||||
char *cause = NULL, *cp;
|
char *cause = NULL, *cp, *expanded;
|
||||||
const char *template, *name;
|
const char *template, *name;
|
||||||
struct cmd_find_state fs;
|
struct cmd_find_state fs;
|
||||||
struct args_value *av;
|
struct args_value *av;
|
||||||
@ -71,16 +71,19 @@ cmd_new_window_exec(struct cmd *self, struct cmdq_item *item)
|
|||||||
*/
|
*/
|
||||||
name = args_get(args, 'n');
|
name = args_get(args, 'n');
|
||||||
if (args_has(args, 'S') && name != NULL && target->idx == -1) {
|
if (args_has(args, 'S') && name != NULL && target->idx == -1) {
|
||||||
|
expanded = format_single(item, name, c, s, NULL, NULL);
|
||||||
RB_FOREACH(wl, winlinks, &s->windows) {
|
RB_FOREACH(wl, winlinks, &s->windows) {
|
||||||
if (strcmp(wl->window->name, name) != 0)
|
if (strcmp(wl->window->name, expanded) != 0)
|
||||||
continue;
|
continue;
|
||||||
if (new_wl == NULL) {
|
if (new_wl == NULL) {
|
||||||
new_wl = wl;
|
new_wl = wl;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
cmdq_error(item, "multiple windows named %s", name);
|
cmdq_error(item, "multiple windows named %s", name);
|
||||||
|
free(expanded);
|
||||||
return (CMD_RETURN_ERROR);
|
return (CMD_RETURN_ERROR);
|
||||||
}
|
}
|
||||||
|
free(expanded);
|
||||||
if (new_wl != NULL) {
|
if (new_wl != NULL) {
|
||||||
if (args_has(args, 'd'))
|
if (args_has(args, 'd'))
|
||||||
return (CMD_RETURN_NORMAL);
|
return (CMD_RETURN_NORMAL);
|
||||||
|
Loading…
Reference in New Issue
Block a user