From 0b9028b4a1bf48ee0eea4ff231d302b24ccb924d Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Mon, 28 Apr 2014 21:49:23 +0300 Subject: [PATCH] Targeted library message to correct Irssi window Add support for sending the library generated say-operation messages to correct window using either nickname or channel name as the target. Irssi does the rest to show the message in correct window. --- apps/irssi/src/silc/core/client_ops.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/irssi/src/silc/core/client_ops.c b/apps/irssi/src/silc/core/client_ops.c index 75f3b147..41ace322 100644 --- a/apps/irssi/src/silc/core/client_ops.c +++ b/apps/irssi/src/silc/core/client_ops.c @@ -212,14 +212,26 @@ void silc_say(SilcClient client, SilcClientConnection conn, SilcClientMessageType type, char *msg, ...) { SILC_SERVER_REC *server; + char *target = NULL; va_list va; char *str; server = conn == NULL ? NULL : conn->context; + switch (conn->context_type) { + case SILC_ID_CLIENT: + target = (conn->client_entry->nickname[0] ? + conn->client_entry->nickname : NULL); + break; + + case SILC_ID_CHANNEL: + target = conn->channel_entry->channel_name; + break; + } + va_start(va, msg); str = g_strdup_vprintf(msg, va); - printtext(server, NULL, MSGLEVEL_CRAP, "%s", str); + printtext(server, target, MSGLEVEL_CRAP, "%s", str); g_free(str); va_end(va); } @@ -1407,7 +1419,7 @@ typedef struct { SilcIdType id_type; } *GetkeyContext; -void silc_getkey_cb(bool success, void *context) +void silc_getkey_cb(SilcBool success, void *context) { GetkeyContext getkey = (GetkeyContext)context; char *entity = (getkey->id_type == SILC_ID_CLIENT ? "user" : "server"); -- 2.24.0