1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 05:16:38 +02:00

Add server option umodes (closes #377)

This commit is contained in:
Simmo Saan
2016-10-12 21:38:49 +03:00
parent c1b39ee5c2
commit 03fbb4ffdc
5 changed files with 48 additions and 0 deletions
+8
View File
@@ -4852,6 +4852,14 @@ irc_command_display_server (struct t_irc_server *server, int with_detail)
weechat_printf (NULL, " notify . . . . . . . : %s'%s'",
IRC_COLOR_CHAT_VALUE,
weechat_config_string (server->options[IRC_SERVER_OPTION_NOTIFY]));
/* umodes*/
if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_UMODES]))
weechat_printf (NULL, " umodes . . . . . . . : ('%s')",
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_UMODES));
else
weechat_printf (NULL, " umodes . . . . . . . : %s'%s'",
IRC_COLOR_CHAT_VALUE,
weechat_config_string (server->options[IRC_SERVER_OPTION_UMODES]));
}
else
{
+17
View File
@@ -2226,6 +2226,23 @@ irc_config_server_new_option (struct t_config_file *config_file,
callback_change_data,
NULL, NULL, NULL);
break;
case IRC_SERVER_OPTION_UMODES:
new_option = weechat_config_new_option (
config_file, section,
option_name, "string",
N_("umode(s) to set after connection to server and before "
"auto-join of channels"),
NULL, 0, 0,
default_value, value,
null_value_allowed,
callback_check_value,
callback_check_value_pointer,
callback_check_value_data,
callback_change,
callback_change_pointer,
callback_change_data,
NULL, NULL, NULL);
break;
case IRC_SERVER_NUM_OPTIONS:
break;
}
+11
View File
@@ -2453,6 +2453,7 @@ IRC_PROTOCOL_CALLBACK(wallops)
IRC_PROTOCOL_CALLBACK(001)
{
char *server_command, **commands, **ptr_command, *vars_replaced, *away_msg;
const char *umodes;
IRC_PROTOCOL_MIN_ARGS(3);
@@ -2492,6 +2493,16 @@ IRC_PROTOCOL_CALLBACK(001)
(void) weechat_hook_signal_send ("irc_server_connected",
WEECHAT_HOOK_SIGNAL_STRING, server->name);
/* set umodes when connected */
umodes = IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_UMODES);
if (umodes && umodes[0])
{
irc_server_sendf (server,
IRC_SERVER_SEND_OUTQ_PRIO_HIGH, NULL,
"MODE %s %s",
server->nick, umodes);
}
/* execute command when connected */
server_command = weechat_string_eval_expression (IRC_SERVER_OPTION_STRING(server,
IRC_SERVER_OPTION_COMMAND),
+11
View File
@@ -116,6 +116,7 @@ char *irc_server_options[IRC_SERVER_NUM_OPTIONS][2] =
{ "msg_part", "WeeChat ${info:version}" },
{ "msg_quit", "WeeChat ${info:version}" },
{ "notify", "" },
{ "umodes", "" },
};
char *irc_server_casemapping_string[IRC_SERVER_NUM_CASEMAPPING] =
@@ -5554,6 +5555,9 @@ irc_server_add_to_infolist (struct t_infolist *infolist,
if (!weechat_infolist_new_var_string (ptr_item, "msg_quit",
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_MSG_QUIT)))
return 0;
if (!weechat_infolist_new_var_string (ptr_item, "umodes",
IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_UMODES)))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "temp_server", server->temp_server))
return 0;
if (!weechat_infolist_new_var_integer (ptr_item, "index_current_address", server->index_current_address))
@@ -5925,6 +5929,13 @@ irc_server_print_log ()
else
weechat_log_printf (" msg_quit . . . . . . : '%s'",
weechat_config_string (ptr_server->options[IRC_SERVER_OPTION_MSG_QUIT]));
/* umodes */
if (weechat_config_option_is_null (ptr_server->options[IRC_SERVER_OPTION_UMODES]))
weechat_log_printf (" umodes . . . . . . . : null ('%s')",
IRC_SERVER_OPTION_STRING(ptr_server, IRC_SERVER_OPTION_UMODES));
else
weechat_log_printf (" umodes . . . . . . . : '%s'",
weechat_config_string (ptr_server->options[IRC_SERVER_OPTION_UMODES]));
/* other server variables */
weechat_log_printf (" temp_server. . . . . : %d", ptr_server->temp_server);
weechat_log_printf (" reloading_from_config: %d", ptr_server->reloaded_from_config);
+1
View File
@@ -82,6 +82,7 @@ enum t_irc_server_option
IRC_SERVER_OPTION_MSG_PART, /* default part message */
IRC_SERVER_OPTION_MSG_QUIT, /* default quit message */
IRC_SERVER_OPTION_NOTIFY, /* notify list */
IRC_SERVER_OPTION_UMODES, /* umodes to set once connected */
/* number of server options */
IRC_SERVER_NUM_OPTIONS,
};