mirror of
https://github.com/irssi/irssi.git
synced 2026-08-20 09:02:13 +02:00
[2025-08-27 23:15:22] file format fix
This commit is contained in:
parent
2c2a0e993e
commit
7c84692110
1 changed files with 84 additions and 59 deletions
|
|
@ -14,12 +14,12 @@
|
||||||
|
|
||||||
/* When enabled, prints WHOIS replies into active window while preserving
|
/* When enabled, prints WHOIS replies into active window while preserving
|
||||||
* formatting and theming. */
|
* formatting and theming. */
|
||||||
#define WHOIS_PRINT(server, nick, level, formatnum, ...) \
|
#define WHOIS_PRINT(server, nick, level, formatnum, ...) \
|
||||||
do { \
|
do { \
|
||||||
if (settings_get_bool("print_whois_rpl_in_active_window") && active_win != NULL) \
|
if (settings_get_bool("print_whois_rpl_in_active_window") && active_win != NULL) \
|
||||||
printformat_window(active_win, level, formatnum, __VA_ARGS__); \
|
printformat_window(active_win, level, formatnum, __VA_ARGS__); \
|
||||||
else \
|
else \
|
||||||
printformat(server, nick, level, formatnum, __VA_ARGS__); \
|
printformat(server, nick, level, formatnum, __VA_ARGS__); \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
static void event_whois(IRC_SERVER_REC *server, const char *data)
|
static void event_whois(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
@ -28,9 +28,11 @@ static void event_whois(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
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);
|
||||||
recoded = recode_in(SERVER(server), realname, nick);
|
recoded = recode_in(SERVER(server), realname, nick);
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS, nick, user, host, recoded);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS, nick, user, host, recoded);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
g_free(recoded);
|
g_free(recoded);
|
||||||
}
|
}
|
||||||
|
|
@ -42,7 +44,8 @@ static void event_whois_special(IRC_SERVER_REC *server, const char *data)
|
||||||
g_return_if_fail(data != NULL);
|
g_return_if_fail(data != NULL);
|
||||||
|
|
||||||
params = event_get_params(data, 3 | PARAM_FLAG_GETREST, NULL, &nick, &str);
|
params = event_get_params(data, 3 | PARAM_FLAG_GETREST, NULL, &nick, &str);
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_SPECIAL, nick, str);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_SPECIAL, nick, str);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -54,24 +57,26 @@ static void event_whois_idle(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
g_return_if_fail(data != NULL);
|
g_return_if_fail(data != NULL);
|
||||||
|
|
||||||
params =
|
params = event_get_params(data, 5 | PARAM_FLAG_GETREST, NULL,
|
||||||
event_get_params(data, 5 | PARAM_FLAG_GETREST, NULL, &nick, &secstr, &signonstr, &rest);
|
&nick, &secstr, &signonstr, &rest);
|
||||||
|
|
||||||
secs = atol(secstr);
|
secs = atol(secstr);
|
||||||
signon = strstr(rest, "signon time") == NULL ? 0 : (time_t) atol(signonstr);
|
signon = strstr(rest, "signon time") == NULL ? 0 :
|
||||||
|
(time_t) atol(signonstr);
|
||||||
|
|
||||||
days = secs / 3600 / 24;
|
days = secs/3600/24;
|
||||||
hours = (secs % (3600 * 24)) / 3600;
|
hours = (secs%(3600*24))/3600;
|
||||||
mins = (secs % 3600) / 60;
|
mins = (secs%3600)/60;
|
||||||
secs %= 60;
|
secs %= 60;
|
||||||
|
|
||||||
if (signon == 0)
|
if (signon == 0)
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_IDLE, nick, days, hours, mins,
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_IDLE,
|
||||||
secs);
|
nick, days, hours, mins, secs);
|
||||||
else {
|
else {
|
||||||
timestr = my_asctime(signon);
|
timestr = my_asctime(signon);
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_IDLE_SIGNON, nick, days,
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
hours, mins, secs, timestr);
|
IRCTXT_WHOIS_IDLE_SIGNON,
|
||||||
|
nick, days, hours, mins, secs, timestr);
|
||||||
g_free(timestr);
|
g_free(timestr);
|
||||||
}
|
}
|
||||||
g_free(params);
|
g_free(params);
|
||||||
|
|
@ -84,7 +89,8 @@ static void event_whois_server(IRC_SERVER_REC *server, const char *data)
|
||||||
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);
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_SERVER, nick, whoserver, desc);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_SERVER, nick, whoserver, desc);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -103,14 +109,14 @@ static void event_whois_oper(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
if ((!strncmp(type, "is an ", 6)) || (!strncmp(type, "is a ", 5))) {
|
if ((!strncmp(type, "is an ", 6)) || (!strncmp(type, "is a ", 5))) {
|
||||||
type += 5;
|
type += 5;
|
||||||
if (*type == ' ')
|
if (*type == ' ') type++;
|
||||||
type++;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*type == '\0')
|
if (*type == '\0')
|
||||||
type = "IRC Operator";
|
type = "IRC Operator";
|
||||||
|
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_OPER, nick, type);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_OPER, nick, type);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -120,10 +126,12 @@ static void event_whois_modes(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
g_return_if_fail(data != NULL);
|
g_return_if_fail(data != NULL);
|
||||||
|
|
||||||
params = event_get_params(data, 3 | PARAM_FLAG_GETREST, NULL, &nick, &modes);
|
params = event_get_params(data, 3 | PARAM_FLAG_GETREST,
|
||||||
|
NULL, &nick, &modes);
|
||||||
if (!strncmp(modes, "is using modes ", 15))
|
if (!strncmp(modes, "is using modes ", 15))
|
||||||
modes += 15;
|
modes += 15;
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_MODES, nick, modes);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_MODES, nick, modes);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -133,22 +141,24 @@ static void event_whois_realhost(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
g_return_if_fail(data != NULL);
|
g_return_if_fail(data != NULL);
|
||||||
|
|
||||||
/* <yournick> real hostname <nick> <hostname> */
|
/* <yournick> real hostname <nick> <hostname> */
|
||||||
params = event_get_params(data, 5, NULL, &nick, &txt_real, &txt_hostname, &hostname);
|
params = event_get_params(data, 5, NULL, &nick, &txt_real,
|
||||||
if (g_strcmp0(txt_real, "real") != 0 || g_strcmp0(txt_hostname, "hostname") != 0) {
|
&txt_hostname, &hostname);
|
||||||
|
if (g_strcmp0(txt_real, "real") != 0 ||
|
||||||
|
g_strcmp0(txt_hostname, "hostname") != 0) {
|
||||||
/* <yournick> <nick> :... from <hostname> */
|
/* <yournick> <nick> :... from <hostname> */
|
||||||
g_free(params);
|
g_free(params);
|
||||||
params = event_get_params(data, 3, NULL, &nick, &hostname);
|
params = event_get_params(data, 3, NULL, &nick, &hostname);
|
||||||
|
|
||||||
hostname = strstr(hostname, "from ");
|
hostname = strstr(hostname, "from ");
|
||||||
if (hostname != NULL)
|
if (hostname != NULL) hostname += 5;
|
||||||
hostname += 5;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hostname != NULL) {
|
if (hostname != NULL) {
|
||||||
if (!strncmp(hostname, "*@", 2))
|
if (!strncmp(hostname, "*@", 2))
|
||||||
hostname += 2;
|
hostname += 2;
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_REALHOST, nick, hostname, "");
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_REALHOST, nick, hostname, "");
|
||||||
} else {
|
} else {
|
||||||
event_whois_special(server, data);
|
event_whois_special(server, data);
|
||||||
}
|
}
|
||||||
|
|
@ -161,10 +171,11 @@ static void event_whois_usermode326(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
g_return_if_fail(data != NULL);
|
g_return_if_fail(data != NULL);
|
||||||
|
|
||||||
/* <yournick> <nick> :has oper privs: <mode> */
|
/* <yournick> <nick> :has oper privs: <mode> */
|
||||||
params = event_get_params(data, 3, NULL, &nick, &usermode);
|
params = event_get_params(data, 3, NULL, &nick, &usermode);
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_USERMODE, nick, usermode);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
g_free(params);
|
IRCTXT_WHOIS_USERMODE, nick, usermode);
|
||||||
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void event_whois_realhost327(IRC_SERVER_REC *server, const char *data)
|
static void event_whois_realhost327(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
@ -176,7 +187,8 @@ static void event_whois_realhost327(IRC_SERVER_REC *server, const char *data)
|
||||||
/* <yournick> <hostname> <ip> :Real hostname/IP */
|
/* <yournick> <hostname> <ip> :Real hostname/IP */
|
||||||
params = event_get_params(data, 5, NULL, &nick, &hostname, &ip, &text);
|
params = event_get_params(data, 5, NULL, &nick, &hostname, &ip, &text);
|
||||||
if (*text != '\0') {
|
if (*text != '\0') {
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_REALHOST, nick, hostname, ip);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_REALHOST, nick, hostname, ip);
|
||||||
} else {
|
} else {
|
||||||
event_whois_special(server, data);
|
event_whois_special(server, data);
|
||||||
}
|
}
|
||||||
|
|
@ -197,9 +209,11 @@ static void event_whois_realhost338(IRC_SERVER_REC *server, const char *data)
|
||||||
*/
|
*/
|
||||||
params = event_get_params(data, 5, NULL, &nick, &arg1, &arg2, &arg3);
|
params = event_get_params(data, 5, NULL, &nick, &arg1, &arg2, &arg3);
|
||||||
if (*arg3 != '\0') {
|
if (*arg3 != '\0') {
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_REALHOST, nick, arg1, arg2);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_REALHOST, nick, arg1, arg2);
|
||||||
} else if (*arg2 != '\0') {
|
} else if (*arg2 != '\0') {
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_REALHOST, nick, arg1, "");
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_REALHOST, nick, arg1, "");
|
||||||
} else {
|
} else {
|
||||||
event_whois_special(server, data);
|
event_whois_special(server, data);
|
||||||
}
|
}
|
||||||
|
|
@ -212,11 +226,13 @@ static void event_whois_usermode(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
g_return_if_fail(data != NULL);
|
g_return_if_fail(data != NULL);
|
||||||
|
|
||||||
params = event_get_params(data, 4, NULL, &txt_usermodes, &nick, &usermode);
|
params = event_get_params(data, 4, NULL, &txt_usermodes,
|
||||||
|
&nick, &usermode);
|
||||||
|
|
||||||
if (g_strcmp0(txt_usermodes, "usermodes") == 0) {
|
if (g_strcmp0(txt_usermodes, "usermodes") == 0) {
|
||||||
/* <yournick> usermodes <nick> usermode */
|
/* <yournick> usermodes <nick> usermode */
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_USERMODE, nick, usermode);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_USERMODE, nick, usermode);
|
||||||
} else {
|
} else {
|
||||||
event_whois_special(server, data);
|
event_whois_special(server, data);
|
||||||
}
|
}
|
||||||
|
|
@ -243,7 +259,7 @@ static void hide_safe_channel_id(IRC_SERVER_REC *server, char *chans)
|
||||||
if (idchan[1] != ':')
|
if (idchan[1] != ':')
|
||||||
return;
|
return;
|
||||||
|
|
||||||
length = strtoul(idchan + 2, &end, 10);
|
length = strtoul(idchan+2, &end, 10);
|
||||||
if (*end == ',')
|
if (*end == ',')
|
||||||
end++;
|
end++;
|
||||||
else if (*end != '\0')
|
else if (*end != '\0')
|
||||||
|
|
@ -286,7 +302,8 @@ static void event_whois_channels(IRC_SERVER_REC *server, const char *data)
|
||||||
if (settings_get_bool("whois_hide_safe_channel_id"))
|
if (settings_get_bool("whois_hide_safe_channel_id"))
|
||||||
hide_safe_channel_id(server, chans);
|
hide_safe_channel_id(server, chans);
|
||||||
recoded = recode_in(SERVER(server), chans, nick);
|
recoded = recode_in(SERVER(server), chans, nick);
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_CHANNELS, nick, recoded);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_CHANNELS, nick, recoded);
|
||||||
g_free(chans);
|
g_free(chans);
|
||||||
|
|
||||||
g_free(params);
|
g_free(params);
|
||||||
|
|
@ -301,7 +318,8 @@ static void event_whois_away(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
params = event_get_params(data, 3, NULL, &nick, &awaymsg);
|
params = event_get_params(data, 3, NULL, &nick, &awaymsg);
|
||||||
recoded = recode_in(SERVER(server), awaymsg, nick);
|
recoded = recode_in(SERVER(server), awaymsg, nick);
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_AWAY, nick, recoded);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_AWAY, nick, recoded);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
g_free(recoded);
|
g_free(recoded);
|
||||||
}
|
}
|
||||||
|
|
@ -314,7 +332,8 @@ static void event_end_of_whois(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
params = event_get_params(data, 2, NULL, &nick);
|
params = event_get_params(data, 2, NULL, &nick);
|
||||||
if (server->whois_found) {
|
if (server->whois_found) {
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_END_OF_WHOIS, nick);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_END_OF_WHOIS, nick);
|
||||||
}
|
}
|
||||||
g_free(params);
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
@ -326,7 +345,8 @@ static void event_whois_auth(IRC_SERVER_REC *server, const char *data)
|
||||||
g_return_if_fail(data != NULL);
|
g_return_if_fail(data != NULL);
|
||||||
|
|
||||||
params = event_get_params(data, 3, NULL, &nick, &text);
|
params = event_get_params(data, 3, NULL, &nick, &text);
|
||||||
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOIS_EXTRA, nick, text);
|
WHOIS_PRINT(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOIS_EXTRA, nick, text);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -336,9 +356,11 @@ static void event_whowas(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
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);
|
||||||
recoded = recode_in(SERVER(server), realname, nick);
|
recoded = recode_in(SERVER(server), realname, nick);
|
||||||
printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_WHOWAS, nick, user, host, recoded);
|
printformat(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_WHOWAS, nick, user, host, recoded);
|
||||||
g_free(params);
|
g_free(params);
|
||||||
g_free(recoded);
|
g_free(recoded);
|
||||||
}
|
}
|
||||||
|
|
@ -351,7 +373,8 @@ static void event_end_of_whowas(IRC_SERVER_REC *server, const char *data)
|
||||||
|
|
||||||
params = event_get_params(data, 2, NULL, &nick);
|
params = event_get_params(data, 2, NULL, &nick);
|
||||||
if (server->whowas_found) {
|
if (server->whowas_found) {
|
||||||
printformat(server, nick, MSGLEVEL_CRAP, IRCTXT_END_OF_WHOWAS, nick);
|
printformat(server, nick, MSGLEVEL_CRAP,
|
||||||
|
IRCTXT_END_OF_WHOWAS, nick);
|
||||||
}
|
}
|
||||||
g_free(params);
|
g_free(params);
|
||||||
}
|
}
|
||||||
|
|
@ -361,17 +384,19 @@ struct whois_event_table {
|
||||||
void (*func)(IRC_SERVER_REC *, const char *);
|
void (*func)(IRC_SERVER_REC *, const char *);
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct whois_event_table events[] = { { 312, event_whois_server },
|
static struct whois_event_table events[] = {
|
||||||
{ 326, event_whois_usermode326 },
|
{ 312, event_whois_server },
|
||||||
{ 327, event_whois_realhost327 },
|
{ 326, event_whois_usermode326 },
|
||||||
{ 338, event_whois_realhost338 },
|
{ 327, event_whois_realhost327 },
|
||||||
{ 379, event_whois_modes },
|
{ 338, event_whois_realhost338 },
|
||||||
{ 378, event_whois_realhost },
|
{ 379, event_whois_modes },
|
||||||
{ 377, event_whois_usermode },
|
{ 378, event_whois_realhost },
|
||||||
{ 317, event_whois_idle },
|
{ 377, event_whois_usermode },
|
||||||
{ 330, event_whois_auth },
|
{ 317, event_whois_idle },
|
||||||
{ 319, event_whois_channels },
|
{ 330, event_whois_auth },
|
||||||
{ 0, NULL } };
|
{ 319, event_whois_channels },
|
||||||
|
{ 0, NULL }
|
||||||
|
};
|
||||||
|
|
||||||
static void event_whois_default(IRC_SERVER_REC *server, const char *data)
|
static void event_whois_default(IRC_SERVER_REC *server, const char *data)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue