=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-respawn-window.c,v retrieving revision 1.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- src/usr.bin/tmux/cmd-respawn-window.c 2016/10/16 19:04:05 1.32 +++ src/usr.bin/tmux/cmd-respawn-window.c 2017/03/09 17:02:38 1.33 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-respawn-window.c,v 1.32 2016/10/16 19:04:05 nicm Exp $ */ +/* $OpenBSD: cmd-respawn-window.c,v 1.33 2017/03/09 17:02:38 nicm Exp $ */ /* * Copyright (c) 2008 Nicholas Marriott @@ -66,11 +66,6 @@ } } - env = environ_create(); - environ_copy(global_environ, env); - environ_copy(s->environ, env); - server_fill_environ(s, env); - wp = TAILQ_FIRST(&w->panes); TAILQ_REMOVE(&w->panes, wp, entry); layout_free(w); @@ -86,6 +81,7 @@ if (envent != NULL) path = envent->value; + env = environ_for_session(s); if (window_pane_spawn(wp, args->argc, args->argv, path, NULL, NULL, env, s->tio, &cause) != 0) { cmdq_error(item, "respawn window failed: %s", cause); @@ -94,6 +90,7 @@ server_destroy_pane(wp, 0); return (CMD_RETURN_ERROR); } + environ_free(env); layout_init(w, wp); window_pane_reset_mode(wp); screen_reinit(&wp->base); @@ -103,6 +100,5 @@ recalculate_sizes(); server_redraw_window(w); - environ_free(env); return (CMD_RETURN_NORMAL); }