From: Pekka Riikonen Date: Mon, 28 Apr 2014 18:49:23 +0000 (+0300) Subject: Targeted library message to correct Irssi window X-Git-Tag: silc.client.1.1.9~19 X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=commitdiff_plain;h=0b9028b4a1bf48ee0eea4ff231d302b24ccb924d 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. --- 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");