From 1527ed0ff8ca9da9d297a644ca23bda87b9ffdac Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Sun, 22 Nov 2009 00:12:33 +0000 Subject: [PATCH] Sync OpenBSD patchset 558: When -h and -p are given to split-window, calculate the percentage size using the width instead of the height. --- cmd-split-window.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/cmd-split-window.c b/cmd-split-window.c index 1938990f..c21160fe 100644 --- a/cmd-split-window.c +++ b/cmd-split-window.c @@ -1,4 +1,4 @@ -/* $Id: cmd-split-window.c,v 1.29 2009-11-14 17:56:39 tcunha Exp $ */ +/* $Id: cmd-split-window.c,v 1.30 2009-11-22 00:12:33 tcunha Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -173,17 +173,21 @@ cmd_split_window_exec(struct cmd *self, struct cmd_ctx *ctx) else cwd = ctx->cmdclient->cwd; - size = -1; - if (data->size != -1) - size = data->size; - else if (data->percentage != -1) - size = (w->active->sy * data->percentage) / 100; - hlimit = options_get_number(&s->options, "history-limit"); - type = LAYOUT_TOPBOTTOM; if (data->flag_horizontal) type = LAYOUT_LEFTRIGHT; + size = -1; + if (data->size != -1) + size = data->size; + else if (data->percentage != -1) { + if (type == LAYOUT_TOPBOTTOM) + size = (w->active->sy * data->percentage) / 100; + else + size = (w->active->sx * data->percentage) / 100; + } + hlimit = options_get_number(&s->options, "history-limit"); + shell = options_get_string(&s->options, "default-shell"); if (*shell == '\0' || areshell(shell)) shell = _PATH_BSHELL;