version 1.44, 2020/04/13 20:51:57 |
version 1.45, 2021/08/20 18:59:53 |
|
|
struct session *s = target->s; |
struct session *s = target->s; |
struct winlink *wl = target->wl; |
struct winlink *wl = target->wl; |
char *cause = NULL; |
char *cause = NULL; |
const char *add; |
struct args_value *av; |
struct args_value *value; |
|
|
|
memset(&sc, 0, sizeof sc); |
memset(&sc, 0, sizeof sc); |
sc.item = item; |
sc.item = item; |
|
|
sc.argv = args->argv; |
sc.argv = args->argv; |
sc.environ = environ_create(); |
sc.environ = environ_create(); |
|
|
add = args_first_value(args, 'e', &value); |
av = args_first_value(args, 'e'); |
while (add != NULL) { |
while (av != NULL) { |
environ_put(sc.environ, add, 0); |
environ_put(sc.environ, av->value, 0); |
add = args_next_value(&value); |
av = args_next_value(av); |
} |
} |
|
|
sc.idx = -1; |
sc.idx = -1; |
|
|
if (spawn_window(&sc, &cause) == NULL) { |
if (spawn_window(&sc, &cause) == NULL) { |
cmdq_error(item, "respawn window failed: %s", cause); |
cmdq_error(item, "respawn window failed: %s", cause); |
free(cause); |
free(cause); |
|
environ_free(sc.environ); |
return (CMD_RETURN_ERROR); |
return (CMD_RETURN_ERROR); |
} |
} |
|
|