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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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[];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user