1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-06 17:53:13 +02:00

irc: add option irc.network.whois_double_nick to double nick in command /whois

This commit is contained in:
Sebastien Helleu
2012-10-20 18:03:08 +02:00
parent 7ee9e58d1b
commit 9037c0fe4c
20 changed files with 175 additions and 72 deletions
+29 -19
View File
@@ -4888,38 +4888,48 @@ int
irc_command_whois (void *data, struct t_gui_buffer *buffer, int argc,
char **argv, char **argv_eol)
{
int double_nick;
const char *ptr_nick;
IRC_BUFFER_GET_SERVER_CHANNEL(buffer);
IRC_COMMAND_CHECK_SERVER("whois", 1);
/* make C compiler happy */
(void) data;
(void) argv;
double_nick = weechat_config_boolean (irc_config_network_whois_double_nick);
ptr_nick = NULL;
if (argc > 1)
{
irc_server_sendf (ptr_server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
"WHOIS %s", argv_eol[1]);
if ((argc > 2) || strchr (argv_eol[1], ','))
{
/* do not double nick if we have more than one argument or a comma */
double_nick = 0;
ptr_nick = argv_eol[1];
}
else
ptr_nick = argv[1];
}
else
{
if (ptr_channel
&& (ptr_channel->type == IRC_CHANNEL_TYPE_PRIVATE))
{
irc_server_sendf (ptr_server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
"WHOIS %s", ptr_channel->name);
}
else
{
if (ptr_server->nick)
{
irc_server_sendf (ptr_server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
"WHOIS %s", ptr_server->nick);
}
else
IRC_COMMAND_TOO_FEW_ARGUMENTS(ptr_server->buffer, "whois");
}
if (ptr_channel && (ptr_channel->type == IRC_CHANNEL_TYPE_PRIVATE))
ptr_nick = ptr_channel->name;
else if (ptr_server->nick)
ptr_nick = ptr_server->nick;
}
if (!ptr_nick)
{
IRC_COMMAND_TOO_FEW_ARGUMENTS(ptr_server->buffer, "whois");
}
irc_server_sendf (ptr_server, IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
"WHOIS %s%s%s",
ptr_nick,
(double_nick) ? " " : "",
(double_nick) ? ptr_nick : "");
return WEECHAT_RC_OK;
}
+14 -6
View File
@@ -131,6 +131,7 @@ struct t_config_option *irc_config_network_lag_refresh_interval;
struct t_config_option *irc_config_network_notify_check_ison;
struct t_config_option *irc_config_network_notify_check_whois;
struct t_config_option *irc_config_network_send_unknown_commands;
struct t_config_option *irc_config_network_whois_double_nick;
/* IRC config, server section */
@@ -2520,12 +2521,6 @@ irc_config_init ()
N_("interval between two refreshs of lag item, when lag is increasing "
"(in seconds)"),
NULL, 1, 3600, "1", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL);
irc_config_network_send_unknown_commands = weechat_config_new_option (
irc_config_file, ptr_section,
"send_unknown_commands", "boolean",
N_("send unknown commands to server"),
NULL, 0, 0, "off", NULL, 0, NULL, NULL,
&irc_config_change_network_send_unknown_commands, NULL, NULL, NULL);
irc_config_network_notify_check_ison = weechat_config_new_option (
irc_config_file, ptr_section,
"notify_check_ison", "integer",
@@ -2540,6 +2535,19 @@ irc_config_init ()
"(in minutes)"),
NULL, 1, 60 * 24 * 7, "5", NULL, 0, NULL, NULL,
&irc_config_change_network_notify_check_whois, NULL, NULL, NULL);
irc_config_network_send_unknown_commands = weechat_config_new_option (
irc_config_file, ptr_section,
"send_unknown_commands", "boolean",
N_("send unknown commands to server"),
NULL, 0, 0, "off", NULL, 0, NULL, NULL,
&irc_config_change_network_send_unknown_commands, NULL, NULL, NULL);
irc_config_network_whois_double_nick = weechat_config_new_option (
irc_config_file, ptr_section,
"whois_double_nick", "boolean",
N_("double the nick in /whois command (if only one nick is given), to "
"get idle time in answer; for example: \"/whois nick\" will send "
"\"whois nick nick\""),
NULL, 0, 0, "on", NULL, 0, NULL, NULL, NULL, NULL, NULL, NULL);
/* msgbuffer */
ptr_section = weechat_config_new_section (irc_config_file, "msgbuffer",
+1
View File
@@ -160,6 +160,7 @@ extern struct t_config_option *irc_config_network_lag_refresh_interval;
extern struct t_config_option *irc_config_network_notify_check_ison;
extern struct t_config_option *irc_config_network_notify_check_whois;
extern struct t_config_option *irc_config_network_send_unknown_commands;
extern struct t_config_option *irc_config_network_whois_double_nick;
extern struct t_config_option *irc_config_server_default[];