From 7e898fdcf4ab2d89977b2ef8db448986b8b68a37 Mon Sep 17 00:00:00 2001 From: vague666 Date: Thu, 12 Mar 2020 22:52:12 +0100 Subject: [PATCH 1/4] Make sure witem exists --- src/fe-common/core/fe-core-commands.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/fe-common/core/fe-core-commands.c b/src/fe-common/core/fe-core-commands.c index 9a2c547f..ea162e08 100644 --- a/src/fe-common/core/fe-core-commands.c +++ b/src/fe-common/core/fe-core-commands.c @@ -155,7 +155,9 @@ static void cmd_cat(const char *data, SERVER_REC *server, WI_ITEM_REC *item) return; } - target = g_hash_table_lookup(optlist, "window") != NULL ? item->name : NULL; + target = item != NULL && g_hash_table_lookup(optlist, "window") != NULL + ? item->name + : NULL; g_io_channel_set_encoding(handle, NULL, NULL); g_io_channel_seek_position(handle, fpos, G_SEEK_SET, NULL); From 22851686f5b88ac83ca49e80e743ed50d18c57af Mon Sep 17 00:00:00 2001 From: ailin-nemui Date: Tue, 17 Mar 2020 00:58:48 +0000 Subject: [PATCH 2/4] simplify logic --- src/fe-common/core/fe-core-commands.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/fe-common/core/fe-core-commands.c b/src/fe-common/core/fe-core-commands.c index ea162e08..c9ca93ce 100644 --- a/src/fe-common/core/fe-core-commands.c +++ b/src/fe-common/core/fe-core-commands.c @@ -117,7 +117,8 @@ static void cmd_version(char *data) /* SYNTAX: CAT [-window] [] */ static void cmd_cat(const char *data, SERVER_REC *server, WI_ITEM_REC *item) { - char *fname, *fposstr, *target; + char *fname, *fposstr; + gboolean target; GHashTable *optlist; void *free_arg; int fpos; @@ -155,16 +156,14 @@ static void cmd_cat(const char *data, SERVER_REC *server, WI_ITEM_REC *item) return; } - target = item != NULL && g_hash_table_lookup(optlist, "window") != NULL - ? item->name - : NULL; + target = g_hash_table_lookup(optlist, "window") != NULL; g_io_channel_set_encoding(handle, NULL, NULL); g_io_channel_seek_position(handle, fpos, G_SEEK_SET, NULL); buf = g_string_sized_new(512); while (g_io_channel_read_line_string(handle, buf, &tpos, NULL) == G_IO_STATUS_NORMAL) { buf->str[tpos] = '\0'; - printtext(target != NULL ? server : NULL, target, MSGLEVEL_CLIENTCRAP | + printtext(target ? server : NULL, target && item != NULL ? item->name : NULL, MSGLEVEL_CLIENTCRAP | MSGLEVEL_NEVER, "%s", buf->str); } g_string_free(buf, TRUE); From 9593be14f5fb93be937a5c67426402757b528909 Mon Sep 17 00:00:00 2001 From: vague666 Date: Mon, 6 Jul 2020 12:22:16 +0200 Subject: [PATCH 3/4] print to active window when -window is specified --- src/fe-common/core/fe-core-commands.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/fe-common/core/fe-core-commands.c b/src/fe-common/core/fe-core-commands.c index c9ca93ce..78c136dc 100644 --- a/src/fe-common/core/fe-core-commands.c +++ b/src/fe-common/core/fe-core-commands.c @@ -163,8 +163,10 @@ static void cmd_cat(const char *data, SERVER_REC *server, WI_ITEM_REC *item) buf = g_string_sized_new(512); while (g_io_channel_read_line_string(handle, buf, &tpos, NULL) == G_IO_STATUS_NORMAL) { buf->str[tpos] = '\0'; - printtext(target ? server : NULL, target && item != NULL ? item->name : NULL, MSGLEVEL_CLIENTCRAP | - MSGLEVEL_NEVER, "%s", buf->str); + if (target) + printtext_window(active_win, MSGLEVEL_CLIENTCRAP | MSGLEVEL_NEVER, "%s", buf->str); + else + printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP | MSGLEVEL_NEVER, "%s", buf->str); } g_string_free(buf, TRUE); cmd_params_free(free_arg); From 357beb91f547051f1c3161df9081f632fcb2acd4 Mon Sep 17 00:00:00 2001 From: ailin-nemui Date: Tue, 7 Jul 2020 09:28:41 +0200 Subject: [PATCH 4/4] make clang-format happy --- src/fe-common/core/fe-core-commands.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/fe-common/core/fe-core-commands.c b/src/fe-common/core/fe-core-commands.c index 78c136dc..c314c405 100644 --- a/src/fe-common/core/fe-core-commands.c +++ b/src/fe-common/core/fe-core-commands.c @@ -164,7 +164,8 @@ static void cmd_cat(const char *data, SERVER_REC *server, WI_ITEM_REC *item) while (g_io_channel_read_line_string(handle, buf, &tpos, NULL) == G_IO_STATUS_NORMAL) { buf->str[tpos] = '\0'; if (target) - printtext_window(active_win, MSGLEVEL_CLIENTCRAP | MSGLEVEL_NEVER, "%s", buf->str); + printtext_window(active_win, MSGLEVEL_CLIENTCRAP | MSGLEVEL_NEVER, "%s", + buf->str); else printtext(NULL, NULL, MSGLEVEL_CLIENTCRAP | MSGLEVEL_NEVER, "%s", buf->str); }