X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=apps%2Firssi%2Fsrc%2Fsilc%2Fcore%2Fsilc-nicklist.c;h=6d4b65f876ca3b7ec2086dfb2e81a0073d3467fa;hp=a8c302bca499c9fb424caced1af589bcdd811842;hb=413da0f8686910f5e627393157566ae729ca99c4;hpb=050bd9d9e5d843220f3f393a18ab5011622237b9 diff --git a/apps/irssi/src/silc/core/silc-nicklist.c b/apps/irssi/src/silc/core/silc-nicklist.c index a8c302bc..6d4b65f8 100644 --- a/apps/irssi/src/silc/core/silc-nicklist.c +++ b/apps/irssi/src/silc/core/silc-nicklist.c @@ -1,7 +1,7 @@ /* silc-nicklist.c : irssi - Copyright (C) 2000 Timo Sirainen + Copyright (C) 2000, 2003 Timo Sirainen, Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -32,7 +32,12 @@ SILC_NICK_REC *silc_nicklist_insert(SILC_CHANNEL_REC *channel, SILC_NICK_REC *rec; g_return_val_if_fail(IS_SILC_CHANNEL(channel), NULL); - g_return_val_if_fail(user != NULL, NULL); + if (!user) + return NULL; + if (!user->client) + return NULL; + if (!user->client->nickname) + return NULL; rec = g_new0(SILC_NICK_REC, 1); rec->nick = g_strdup(user->client->nickname); @@ -42,9 +47,9 @@ SILC_NICK_REC *silc_nicklist_insert(SILC_CHANNEL_REC *channel, rec->silc_user = user; rec->unique_id = user->client; - if (user->mode & SILC_CHANNEL_UMODE_CHANOP) + if (user->mode & SILC_CHANNEL_UMODE_CHANOP) rec->op = TRUE; - if (user->mode & SILC_CHANNEL_UMODE_CHANFO) + if (user->mode & SILC_CHANNEL_UMODE_CHANFO) rec->founder = TRUE; rec->send_massjoin = send_massjoin; @@ -73,7 +78,7 @@ char *silc_nick_strip(const char *nick) char *stripped, *spos; g_return_val_if_fail(nick != NULL, NULL); - + spos = stripped = g_strdup(nick); while (isnickchar(*nick)) { if (isalnum((int) *nick)) @@ -99,15 +104,15 @@ int silc_nick_match(const char *nick, const char *msg) len = strlen(nick); if (g_strncasecmp(msg, nick, len) == 0 && !isalnum((int) msg[len])) return TRUE; - + stripnick = silc_nick_strip(nick); stripmsg = silc_nick_strip(msg); - + len = strlen(stripnick); ret = len > 0 && g_strncasecmp(stripmsg, stripnick, len) == 0 && !isalnum((int) stripmsg[len]) && (unsigned char) stripmsg[len] < 128; - + g_free(stripnick); g_free(stripmsg);