WHOIS and "no such nick" messages are displayed in nick's query window

if it exists + other cleanups and minor changes.


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@378 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2000-06-25 22:25:24 +00:00 committed by cras
parent 97bf5f5b39
commit 4f034717c0

View File

@ -32,9 +32,9 @@
static char *last_away_nick = NULL; static char *last_away_nick = NULL;
static char *last_away_msg = NULL; static char *last_away_msg = NULL;
static void event_user_mode(gchar *data, IRC_SERVER_REC *server) static void event_user_mode(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *mode; char *params, *mode;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
g_return_if_fail(server != NULL); g_return_if_fail(server != NULL);
@ -44,9 +44,9 @@ static void event_user_mode(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_ison(gchar *data, IRC_SERVER_REC *server) static void event_ison(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *online; char *params, *online;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
g_return_if_fail(server != NULL); g_return_if_fail(server != NULL);
@ -56,9 +56,9 @@ static void event_ison(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_names_list(gchar *data, IRC_SERVER_REC *server) static void event_names_list(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel, *names; char *params, *channel, *names;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -151,9 +151,9 @@ static void display_nicks(CHANNEL_REC *channel)
channel->name, nicks, ops, voices, normal); channel->name, nicks, ops, voices, normal);
} }
static void event_end_of_names(gchar *data, IRC_SERVER_REC *server) static void event_end_of_names(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel; char *params, *channel;
CHANNEL_REC *chanrec; CHANNEL_REC *chanrec;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -168,9 +168,9 @@ static void event_end_of_names(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_who(gchar *data, IRC_SERVER_REC *server) static void event_who(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *nick, *channel, *user, *host, *stat, *realname, *hops; char *params, *nick, *channel, *user, *host, *stat, *realname, *hops;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -188,9 +188,9 @@ static void event_who(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_end_of_who(gchar *data, IRC_SERVER_REC *server) static void event_end_of_who(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel; char *params, *channel;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -199,58 +199,56 @@ static void event_end_of_who(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_ban_list(gchar *data, IRC_SERVER_REC *server) static void event_ban_list(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel, *ban, *setby, *tims; char *params, *channel, *ban, *setby, *tims;
glong secs, tim; long secs;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 5, NULL, &channel, &ban, &setby, &tims); params = event_get_params(data, 5, NULL, &channel, &ban, &setby, &tims);
secs = *tims == '\0' ? 0 :
(long) (time(NULL) - atol(tims));
if (sscanf(tims, "%ld", &tim) != 1) tim = (glong) time(NULL); printformat(server, NULL, MSGLEVEL_CRAP,
secs = (glong) time(NULL)-tim;
printformat(server, channel, MSGLEVEL_CRAP,
*setby == '\0' ? IRCTXT_BANLIST : IRCTXT_BANLIST_LONG, *setby == '\0' ? IRCTXT_BANLIST : IRCTXT_BANLIST_LONG,
channel, ban, setby, secs); channel, ban, setby, secs);
g_free(params); g_free(params);
} }
static void event_eban_list(gchar *data, IRC_SERVER_REC *server) static void event_eban_list(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel, *ban, *setby, *tims; char *params, *channel, *ban, *setby, *tims;
glong secs, tim; long secs;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 5, NULL, &channel, &ban, &setby, &tims); params = event_get_params(data, 5, NULL, &channel, &ban, &setby, &tims);
secs = *tims == '\0' ? 0 :
(long) (time(NULL) - atol(tims));
if (sscanf(tims, "%ld", &tim) != 1) tim = (glong) time(NULL); printformat(server, NULL, MSGLEVEL_CRAP,
secs = (glong) time(NULL)-tim;
printformat(server, channel, MSGLEVEL_CRAP,
*setby == '\0' ? IRCTXT_EBANLIST : IRCTXT_EBANLIST_LONG, *setby == '\0' ? IRCTXT_EBANLIST : IRCTXT_EBANLIST_LONG,
channel, ban, setby, secs); channel, ban, setby, secs);
g_free(params); g_free(params);
} }
static void event_invite_list(gchar *data, IRC_SERVER_REC *server) static void event_invite_list(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel, *invite; char *params, *channel, *invite;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 3, NULL, &channel, &invite); params = event_get_params(data, 3, NULL, &channel, &invite);
printformat(server, channel, MSGLEVEL_CRAP, IRCTXT_INVITELIST, channel, invite); printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_INVITELIST, channel, invite);
g_free(params); g_free(params);
} }
static void event_nick_in_use(gchar *data, IRC_SERVER_REC *server) static void event_nick_in_use(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *nick; char *params, *nick;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -261,9 +259,9 @@ static void event_nick_in_use(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_topic_get(gchar *data, IRC_SERVER_REC *server) static void event_topic_get(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel, *topic; char *params, *channel, *topic;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -294,9 +292,9 @@ static void event_topic_info(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_channel_mode(gchar *data, IRC_SERVER_REC *server) static void event_channel_mode(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel, *mode; char *params, *channel, *mode;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -327,12 +325,12 @@ static void event_channel_created(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_away(gchar *data, IRC_SERVER_REC *server) static void event_away(const char *data, IRC_SERVER_REC *server)
{ {
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_AWAY); printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_AWAY);
} }
static void event_unaway(gchar *data, IRC_SERVER_REC *server) static void event_unaway(const char *data, IRC_SERVER_REC *server)
{ {
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_UNAWAY); printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_UNAWAY);
} }
@ -355,18 +353,18 @@ static void event_sent_invite(const char *data, IRC_SERVER_REC *server)
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 3, NULL, &nick, &channel); params = event_get_params(data, 3, NULL, &nick, &channel);
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_INVITING, nick, channel); printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_INVITING, nick, channel);
g_free(params); g_free(params);
} }
static void event_whois(gchar *data, IRC_SERVER_REC *server) static void event_whois(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *nick, *user, *host, *realname; char *params, *nick, *user, *host, *realname;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 6, NULL, &nick, &user, &host, NULL, &realname); params = event_get_params(data, 6, NULL, &nick, &user, &host, NULL, &realname);
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_WHOIS, nick, user, host, realname); printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS, nick, user, host, realname);
g_free(params); g_free(params);
} }
@ -397,31 +395,31 @@ static void event_whois_idle(gchar *data, IRC_SERVER_REC *server)
tim = localtime(&t); tim = localtime(&t);
timestr = g_strdup(asctime(tim)); timestr = g_strdup(asctime(tim));
if (timestr[strlen(timestr)-1] == '\n') timestr[strlen(timestr)-1] = '\0'; if (timestr[strlen(timestr)-1] == '\n') timestr[strlen(timestr)-1] = '\0';
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_WHOIS_IDLE_SIGNON, nick, h, m, s, timestr); printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_IDLE_SIGNON, nick, h, m, s, timestr);
g_free(timestr); g_free(timestr);
} }
g_free(params); g_free(params);
} }
static void event_whois_server(gchar *data, IRC_SERVER_REC *server) static void event_whois_server(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *nick, *whoserver, *desc; char *params, *nick, *whoserver, *desc;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 4, NULL, &nick, &whoserver, &desc); params = event_get_params(data, 4, NULL, &nick, &whoserver, &desc);
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_WHOIS_SERVER, nick, whoserver, desc); printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_SERVER, nick, whoserver, desc);
g_free(params); g_free(params);
} }
static void event_whois_oper(gchar *data, IRC_SERVER_REC *server) static void event_whois_oper(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *nick; char *params, *nick;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 2, NULL, &nick); params = event_get_params(data, 2, NULL, &nick);
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_WHOIS_OPER, nick); printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_OPER, nick);
g_free(params); g_free(params);
} }
@ -432,39 +430,41 @@ static void event_whowas(const char *data, IRC_SERVER_REC *server)
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 6, NULL, &nick, &user, &host, NULL, &realname); params = event_get_params(data, 6, NULL, &nick, &user, &host, NULL, &realname);
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_WHOWAS, nick, user, host, realname); printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOWAS, nick, user, host, realname);
g_free(params); g_free(params);
} }
static void event_whois_channels(gchar *data, IRC_SERVER_REC *server) static void event_whois_channels(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *nick, *chans; char *params, *nick, *chans;
GString *str; GString *str;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 3, NULL, &nick, &chans); params = event_get_params(data, 3, NULL, &nick, &chans);
/* sure - we COULD print the channel names as-is, but since the
colors, bolds, etc. are mostly just to fool people, I think we
should show the channel names as they REALLY are so they could
even be joined without any extra tricks. */
str = g_string_new(NULL); str = g_string_new(NULL);
for (; *chans != '\0'; chans++) for (; *chans != '\0'; chans++) {
{
if ((unsigned char) *chans >= 32) if ((unsigned char) *chans >= 32)
g_string_append_c(str, *chans); g_string_append_c(str, *chans);
else else {
{
g_string_append_c(str, '^'); g_string_append_c(str, '^');
g_string_append_c(str, *chans+'A'-1); g_string_append_c(str, *chans+'A'-1);
} }
} }
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_WHOIS_CHANNELS, nick, str->str); printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_CHANNELS, nick, str->str);
g_free(params); g_free(params);
g_string_free(str, TRUE); g_string_free(str, TRUE);
} }
static void event_whois_away(gchar *data, IRC_SERVER_REC *server) static void event_whois_away(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *nick, *awaymsg; char *params, *nick, *awaymsg;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -478,7 +478,7 @@ static void event_whois_away(gchar *data, IRC_SERVER_REC *server)
last_away_nick = g_strdup(nick); last_away_nick = g_strdup(nick);
last_away_msg = g_strdup(awaymsg); last_away_msg = g_strdup(awaymsg);
printformat(server, NULL, MSGLEVEL_CRAP, server->whois_coming ? printformat(server, nick, MSGLEVEL_CRAP, server->whois_coming ?
IRCTXT_WHOIS_AWAY : IRCTXT_NICK_AWAY, nick, awaymsg); IRCTXT_WHOIS_AWAY : IRCTXT_NICK_AWAY, nick, awaymsg);
} }
g_free(params); g_free(params);
@ -491,7 +491,7 @@ static void event_end_of_whois(const char *data, IRC_SERVER_REC *server)
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 2, NULL, &nick); params = event_get_params(data, 2, NULL, &nick);
if (server->whois_found) printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_END_OF_WHOIS, nick); if (server->whois_found) printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_END_OF_WHOIS, nick);
g_free(params); g_free(params);
} }
@ -502,24 +502,21 @@ static void event_end_of_whowas(const char *data, IRC_SERVER_REC *server)
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 2, NULL, &nick); params = event_get_params(data, 2, NULL, &nick);
if (server->whowas_found) printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_END_OF_WHOWAS, nick); if (server->whowas_found) printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_END_OF_WHOWAS, nick);
g_free(params); g_free(params);
} }
static void event_target_unavailable(gchar *data, IRC_SERVER_REC *server) static void event_target_unavailable(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel; char *params, *channel;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 2, NULL, &channel); params = event_get_params(data, 2, NULL, &channel);
if (!ischannel(*channel)) if (!ischannel(*channel)) {
{
/* nick unavailable */ /* nick unavailable */
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_NICK_UNAVAILABLE, channel); printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_NICK_UNAVAILABLE, channel);
} } else {
else
{
/* channel is unavailable. */ /* channel is unavailable. */
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_JOINERROR_UNAVAIL, channel); printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_JOINERROR_UNAVAIL, channel);
} }
@ -527,20 +524,20 @@ static void event_target_unavailable(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_no_such_nick(gchar *data, IRC_SERVER_REC *server) static void event_no_such_nick(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *nick; char *params, *nick;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
params = event_get_params(data, 2, NULL, &nick); params = event_get_params(data, 2, NULL, &nick);
printformat(server, NULL, MSGLEVEL_CRAP, IRCTXT_NO_SUCH_NICK, nick); printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_NO_SUCH_NICK, nick);
g_free(params); g_free(params);
} }
static void event_no_such_channel(gchar *data, IRC_SERVER_REC *server) static void event_no_such_channel(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel; char *params, *channel;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -549,9 +546,9 @@ static void event_no_such_channel(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void cannot_join(gchar *data, IRC_SERVER_REC *server, gint format) static void cannot_join(const char *data, IRC_SERVER_REC *server, int format)
{ {
gchar *params, *channel; char *params, *channel;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -560,39 +557,39 @@ static void cannot_join(gchar *data, IRC_SERVER_REC *server, gint format)
g_free(params); g_free(params);
} }
static void event_too_many_channels(gchar *data, IRC_SERVER_REC *server) static void event_too_many_channels(const char *data, IRC_SERVER_REC *server)
{ {
cannot_join(data, server, IRCTXT_JOINERROR_TOOMANY); cannot_join(data, server, IRCTXT_JOINERROR_TOOMANY);
} }
static void event_channel_is_full(gchar *data, IRC_SERVER_REC *server) static void event_channel_is_full(const char *data, IRC_SERVER_REC *server)
{ {
cannot_join(data, server, IRCTXT_JOINERROR_FULL); cannot_join(data, server, IRCTXT_JOINERROR_FULL);
} }
static void event_invite_only(gchar *data, IRC_SERVER_REC *server) static void event_invite_only(const char *data, IRC_SERVER_REC *server)
{ {
cannot_join(data, server, IRCTXT_JOINERROR_INVITE); cannot_join(data, server, IRCTXT_JOINERROR_INVITE);
} }
static void event_banned(gchar *data, IRC_SERVER_REC *server) static void event_banned(const char *data, IRC_SERVER_REC *server)
{ {
cannot_join(data, server, IRCTXT_JOINERROR_BANNED); cannot_join(data, server, IRCTXT_JOINERROR_BANNED);
} }
static void event_bad_channel_key(gchar *data, IRC_SERVER_REC *server) static void event_bad_channel_key(const char *data, IRC_SERVER_REC *server)
{ {
cannot_join(data, server, IRCTXT_JOINERROR_BAD_KEY); cannot_join(data, server, IRCTXT_JOINERROR_BAD_KEY);
} }
static void event_bad_channel_mask(gchar *data, IRC_SERVER_REC *server) static void event_bad_channel_mask(const char *data, IRC_SERVER_REC *server)
{ {
cannot_join(data, server, IRCTXT_JOINERROR_BAD_MASK); cannot_join(data, server, IRCTXT_JOINERROR_BAD_MASK);
} }
static void event_unknown_mode(gchar *data, IRC_SERVER_REC *server) static void event_unknown_mode(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *mode; char *params, *mode;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -601,9 +598,9 @@ static void event_unknown_mode(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_not_chanop(gchar *data, IRC_SERVER_REC *server) static void event_not_chanop(const char *data, IRC_SERVER_REC *server)
{ {
gchar *params, *channel; char *params, *channel;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);
@ -612,9 +609,10 @@ static void event_not_chanop(gchar *data, IRC_SERVER_REC *server)
g_free(params); g_free(params);
} }
static void event_received(gchar *data, IRC_SERVER_REC *server, gchar *nick, gchar *addr) static void event_received(const char *data, IRC_SERVER_REC *server,
const char *nick, const char *addr)
{ {
gchar *params, *args, *ptr; char *params, *args, *ptr;
g_return_if_fail(data != NULL); g_return_if_fail(data != NULL);