From b182791052640f99188c3c744d5cb9a45789baee Mon Sep 17 00:00:00 2001 From: nicm Date: Sat, 13 Jun 2026 18:30:16 +0000 Subject: [PATCH] Tidy up error messages from split-window. --- cmd-split-window.c | 2 +- layout.c | 29 +++++++++++++++++++++-------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/cmd-split-window.c b/cmd-split-window.c index 940a4fc1..1c9eaae9 100644 --- a/cmd-split-window.c +++ b/cmd-split-window.c @@ -120,7 +120,7 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item) else lc = layout_get_tiled_cell(item, args, w, wp, flags, &cause); if (cause != NULL) { - cmdq_error(item, "size or position %s", cause); + cmdq_error(item, "%s", cause); free(cause); return (CMD_RETURN_ERROR); } diff --git a/layout.c b/layout.c index 0beb5792..1cdab6cb 100644 --- a/layout.c +++ b/layout.c @@ -1416,30 +1416,43 @@ layout_get_floating_cell(struct cmdq_item *item, struct args *args, struct layout_cell *lcnew; int sx = w->sx / 2, sy = w->sy / 4; int ox = INT_MAX, oy = INT_MAX; + char *error; if (args_has(args, 'x')) { sx = args_percentage_and_expand(args, 'x', 0, w->sx - 1, w->sx, - item, cause); - if (*cause != NULL) + item, &error); + if (error != NULL) { + xasprintf(cause, "position %s", error); + free(error); return (NULL); + } } if (args_has(args, 'y')) { sy = args_percentage_and_expand(args, 'y', 0, w->sy - 1, w->sy, - item, cause); - if (*cause != NULL) + item, &error); + if (error != NULL) { + xasprintf(cause, "position %s", error); + free(error); return (NULL); + } } if (args_has(args, 'X')) { ox = args_percentage_and_expand(args, 'X', -sx, w->sx, - w->sx, item, cause); - if (*cause != NULL) + w->sx, item, &error); + if (error != NULL) { + xasprintf(cause, "size %s", error); + free(error); return (NULL); + } } if (args_has(args, 'Y')) { oy = args_percentage_and_expand(args, 'Y', -sy, w->sy, - w->sy, item, cause); - if (*cause != NULL) + w->sy, item, &error); + if (error != NULL) { + xasprintf(cause, "size %s", error); + free(error); return (NULL); + } } if (ox == INT_MAX) {