projects
/
silc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merged silc_1_0_branch to trunk.
[silc.git]
/
apps
/
irssi
/
src
/
silc
/
core
/
silc-nicklist.c
diff --git
a/apps/irssi/src/silc/core/silc-nicklist.c
b/apps/irssi/src/silc/core/silc-nicklist.c
index 2a517db2a8a557d8e2b5e813f4cfe3052c369b22..6d4b65f876ca3b7ec2086dfb2e81a0073d3467fa 100644
(file)
--- 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
/*
silc-nicklist.c : irssi
- Copyright (C) 2000
Timo Sirai
nen
+ Copyright (C) 2000
, 2003 Timo Sirainen, Pekka Riiko
nen
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
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,17
+32,24
@@
SILC_NICK_REC *silc_nicklist_insert(SILC_CHANNEL_REC *channel,
SILC_NICK_REC *rec;
g_return_val_if_fail(IS_SILC_CHANNEL(channel), NULL);
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);
rec = g_new0(SILC_NICK_REC, 1);
rec->nick = g_strdup(user->client->nickname);
- rec->host = g_strdup(user->client->username);
+ rec->host = g_strdup_printf("%s@%s", user->client->username,
+ user->client->hostname);
+ rec->realname = g_strdup(user->client->realname);
rec->silc_user = user;
rec->unique_id = user->client;
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;
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;
rec->founder = TRUE;
rec->send_massjoin = send_massjoin;
@@
-71,7
+78,7
@@
char *silc_nick_strip(const char *nick)
char *stripped, *spos;
g_return_val_if_fail(nick != NULL, NULL);
char *stripped, *spos;
g_return_val_if_fail(nick != NULL, NULL);
-
+
spos = stripped = g_strdup(nick);
while (isnickchar(*nick)) {
if (isalnum((int) *nick))
spos = stripped = g_strdup(nick);
while (isnickchar(*nick)) {
if (isalnum((int) *nick))
@@
-97,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;
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);
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;
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);
g_free(stripnick);
g_free(stripmsg);