From 58d1a206c6ae6b33059ea6b469c21dad92ea0841 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Mon, 18 Apr 2022 11:47:14 +0100 Subject: Add a way for lines added to copy mode to be passed through the parser to handle escape sequences and use it for run-shell, GitHub issue 3156. --- cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cfg.c') diff --git a/cfg.c b/cfg.c index 5b64c2aa..e92faa7c 100644 --- a/cfg.c +++ b/cfg.c @@ -250,7 +250,7 @@ cfg_show_causes(struct session *s) if (wme == NULL || wme->mode != &window_view_mode) window_pane_set_mode(wp, NULL, &window_view_mode, NULL, NULL); for (i = 0; i < cfg_ncauses; i++) { - window_copy_add(wp, "%s", cfg_causes[i]); + window_copy_add(wp, 0, "%s", cfg_causes[i]); free(cfg_causes[i]); } -- cgit From cd89000c1d75d0cfec28cf7e81b06f80a43ea093 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 30 May 2022 13:00:18 +0000 Subject: Add a way for lines added to copy mode to be passed through the parser to handle escape sequences and use it for run-shell, GitHub issue 3156. --- cfg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'cfg.c') diff --git a/cfg.c b/cfg.c index 3130e323..d32e5ff1 100644 --- a/cfg.c +++ b/cfg.c @@ -251,7 +251,7 @@ cfg_show_causes(struct session *s) if (wme == NULL || wme->mode != &window_view_mode) window_pane_set_mode(wp, NULL, &window_view_mode, NULL, NULL); for (i = 0; i < cfg_ncauses; i++) { - window_copy_add(wp, "%s", cfg_causes[i]); + window_copy_add(wp, 0, "%s", cfg_causes[i]); free(cfg_causes[i]); } -- cgit From a888ce9963053c790c6ee9bf64cc53d95f0f9c09 Mon Sep 17 00:00:00 2001 From: nicm Date: Mon, 20 Jun 2022 07:59:37 +0000 Subject: Do not display configuration file errors in a pane when in control mode, instead report them with a %config-error notification. GitHub issue 3193. --- cfg.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'cfg.c') diff --git a/cfg.c b/cfg.c index d32e5ff1..e92ce36f 100644 --- a/cfg.c +++ b/cfg.c @@ -52,8 +52,7 @@ cfg_done(__unused struct cmdq_item *item, __unused void *data) return (CMD_RETURN_NORMAL); cfg_finished = 1; - if (!RB_EMPTY(&sessions)) - cfg_show_causes(RB_MIN(sessions, &sessions)); + cfg_show_causes(NULL); if (cfg_item != NULL) cmdq_continue(cfg_item); @@ -239,11 +238,29 @@ cfg_print_causes(struct cmdq_item *item) void cfg_show_causes(struct session *s) { + struct client *c = TAILQ_FIRST(&clients); struct window_pane *wp; struct window_mode_entry *wme; u_int i; - if (s == NULL || cfg_ncauses == 0) + if (cfg_ncauses == 0) + return; + + if (c != NULL && (c->flags & CLIENT_CONTROL)) { + for (i = 0; i < cfg_ncauses; i++) { + control_write(c, "%%config-error %s", cfg_causes[i]); + free(cfg_causes[i]); + } + goto out; + } + + if (s == NULL) { + if (c != NULL && c->session != NULL) + s = c->session; + else + s = RB_MIN(sessions, &sessions); + } + if (s == NULL || s->attached == 0) /* wait for an attached session */ return; wp = s->curw->window->active; @@ -255,6 +272,7 @@ cfg_show_causes(struct session *s) free(cfg_causes[i]); } +out: free(cfg_causes); cfg_causes = NULL; cfg_ncauses = 0; -- cgit