summaryrefslogtreecommitdiffstats
path: root/spawn.c
diff options
context:
space:
mode:
authornicm <nicm>2019-09-18 11:37:58 +0000
committernicm <nicm>2019-09-18 11:37:58 +0000
commit697f9383550a8bb60ad09c22a6c208a0cf151e4e (patch)
tree2010f819762034efbd9628216752a14635357be4 /spawn.c
parent83be3afc54b783fabb5e57d2588887b9c8c0decf (diff)
Do not set uninitialized signal mask when creating an empty pane.
Diffstat (limited to 'spawn.c')
-rw-r--r--spawn.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/spawn.c b/spawn.c
index 08d0426c..52763083 100644
--- a/spawn.c
+++ b/spawn.c
@@ -332,14 +332,6 @@ spawn_pane(struct spawn_context *sc, char **cause)
cmd_log_argv(new_wp->argc, new_wp->argv, "%s", __func__);
environ_log(child, "%s: environment ", __func__);
- /* If the command is empty, don't fork a child process. */
- if (sc->flags & SPAWN_EMPTY) {
- new_wp->flags |= PANE_EMPTY;
- new_wp->base.mode &= ~MODE_CURSOR;
- new_wp->base.mode |= MODE_CRLF;
- goto complete;
- }
-
/* Initialize the window size. */
memset(&ws, 0, sizeof ws);
ws.ws_col = screen_size_x(&new_wp->base);
@@ -349,6 +341,14 @@ spawn_pane(struct spawn_context *sc, char **cause)
sigfillset(&set);
sigprocmask(SIG_BLOCK, &set, &oldset);
+ /* If the command is empty, don't fork a child process. */
+ if (sc->flags & SPAWN_EMPTY) {
+ new_wp->flags |= PANE_EMPTY;
+ new_wp->base.mode &= ~MODE_CURSOR;
+ new_wp->base.mode |= MODE_CRLF;
+ goto complete;
+ }
+
/* Fork the new process. */
new_wp->pid = fdforkpty(ptm_fd, &new_wp->fd, new_wp->tty, NULL, &ws);
if (new_wp->pid == -1) {