1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-05 01:03:14 +02:00

Replaced options nick1/nick2/nick3 by nicks in IRC servers

This commit is contained in:
Sebastien Helleu
2008-02-03 00:09:35 +01:00
parent 28e811c09c
commit cb657254bb
15 changed files with 429 additions and 539 deletions
+9 -14
View File
@@ -617,9 +617,7 @@ irc_command_connect (void *data, struct t_gui_buffer *buffer, int argc,
server_tmp.ipv6,
server_tmp.ssl,
server_tmp.password,
server_tmp.nick1,
server_tmp.nick2,
server_tmp.nick3,
server_tmp.nicks,
server_tmp.username,
server_tmp.realname,
server_tmp.hostname,
@@ -2640,7 +2638,7 @@ irc_command_server (void *data, struct t_gui_buffer *buffer, int argc,
}
if (weechat_strcasecmp (argv[i], "-nicks") == 0)
{
if (i >= (argc - 3))
if (i == (argc - 1))
{
weechat_printf (NULL,
_("%s%s: missing argument for "
@@ -2650,9 +2648,7 @@ irc_command_server (void *data, struct t_gui_buffer *buffer, int argc,
irc_server_free_data (&server_tmp);
return WEECHAT_RC_ERROR;
}
server_tmp.nick1 = strdup (argv[++i]);
server_tmp.nick2 = strdup (argv[++i]);
server_tmp.nick3 = strdup (argv[++i]);
server_tmp.nicks = strdup (argv[++i]);
}
if (weechat_strcasecmp (argv[i], "-username") == 0)
{
@@ -2724,9 +2720,7 @@ irc_command_server (void *data, struct t_gui_buffer *buffer, int argc,
server_tmp.ipv6,
server_tmp.ssl,
server_tmp.password,
server_tmp.nick1,
server_tmp.nick2,
server_tmp.nick3,
server_tmp.nicks,
server_tmp.username,
server_tmp.realname,
server_tmp.hostname,
@@ -3854,10 +3848,11 @@ irc_command_init ()
N_("[list [servername]] | [listfull [servername]] | "
"[add servername hostname [-port port] [-temp] "
"[-auto | -noauto] [-ipv6] [-ssl] [-pwd password] "
"[-nicks nick1 nick2 nick3] [-username username] "
"[-realname realname] [-command command] "
"[-autojoin channel[,channel]] ] | [copy "
"servername newservername] | [rename servername "
"[-nicks nick1,nick2,nick3,...] "
"[-username username] [-realname realname] "
"[-command command] [-autojoin "
"channel[,channel]] ] | [copy servername "
"newservername] | [rename servername "
"newservername] | [keep servername] | [del "
"servername]"),
N_(" list: list servers (no parameter implies "
+13 -29
View File
@@ -94,9 +94,7 @@ struct t_config_option *irc_config_server_port;
struct t_config_option *irc_config_server_ipv6;
struct t_config_option *irc_config_server_ssl;
struct t_config_option *irc_config_server_password;
struct t_config_option *irc_config_server_nick1;
struct t_config_option *irc_config_server_nick2;
struct t_config_option *irc_config_server_nick3;
struct t_config_option *irc_config_server_nicks;
struct t_config_option *irc_config_server_username;
struct t_config_option *irc_config_server_realname;
struct t_config_option *irc_config_server_hostname;
@@ -371,12 +369,8 @@ irc_config_write_servers (void *data, struct t_config_file *config_file,
(ptr_server->ssl) ? "on" : "off");
weechat_config_write_line (config_file, "server_password", "\"%s\"",
(ptr_server->password) ? ptr_server->password : "");
weechat_config_write_line (config_file, "server_nick1", "\"%s\"",
ptr_server->nick1);
weechat_config_write_line (config_file, "server_nick2", "\"%s\"",
ptr_server->nick2);
weechat_config_write_line (config_file, "server_nick3", "\"%s\"",
ptr_server->nick3);
weechat_config_write_line (config_file, "server_nicks", "\"%s\"",
ptr_server->nicks);
weechat_config_write_line (config_file, "server_username", "\"%s\"",
ptr_server->username);
weechat_config_write_line (config_file, "server_realname", "\"%s\"",
@@ -426,9 +420,11 @@ irc_config_write_server_default (void *data, struct t_config_file *config_file,
/* Get the user's name from /etc/passwd */
if ((my_passwd = getpwuid (geteuid ())) != NULL)
{
weechat_config_write_line (config_file, "server_nick1", "\"%s\"", my_passwd->pw_name);
weechat_config_write_line (config_file, "server_nick2", "\"%s1\"", my_passwd->pw_name);
weechat_config_write_line (config_file, "server_nick3", "\"%s2\"", my_passwd->pw_name);
weechat_config_write_line (config_file,
"server_nicks", "\"%s,%s1,%s2\"",
my_passwd->pw_name,
my_passwd->pw_name,
my_passwd->pw_name);
weechat_config_write_line (config_file, "server_username", "\"%s\"", my_passwd->pw_name);
if ((!my_passwd->pw_gecos)
|| (my_passwd->pw_gecos[0] == '\0')
@@ -451,9 +447,8 @@ irc_config_write_server_default (void *data, struct t_config_file *config_file,
else
{
/* default values if /etc/passwd can't be read */
weechat_config_write_line (config_file, "server_nick1", "%s", "\"weechat1\"");
weechat_config_write_line (config_file, "server_nick2", "%s", "\"weechat2\"");
weechat_config_write_line (config_file, "server_nick3", "%s", "\"weechat3\"");
weechat_config_write_line (config_file, "server_nicks", "%s",
"\"" IRC_SERVER_DEFAULT_NICKS "\"");
weechat_config_write_line (config_file, "server_username", "%s", "\"weechat\"");
weechat_config_write_line (config_file, "server_realname", "%s", "\"weechat\"");
}
@@ -764,21 +759,10 @@ irc_config_init ()
"server_password", "string",
N_("password for IRC server"),
NULL, 0, 0, "", NULL, NULL);
irc_config_server_nick1 = weechat_config_new_option (
irc_config_server_nicks = weechat_config_new_option (
irc_config_file, ptr_section,
"server_nick1", "string",
N_("nickname to use on IRC server"),
NULL, 0, 0, "", NULL, NULL);
irc_config_server_nick2 = weechat_config_new_option (
irc_config_file, ptr_section,
"server_nick2", "string",
N_("alternate nickname to use on IRC server (if nickname is already "
"used)"),
NULL, 0, 0, "", NULL, NULL);
irc_config_server_nick3 = weechat_config_new_option (
irc_config_file, ptr_section, "server_nick3", "string",
N_("2nd alternate nickname to use on IRC server (if alternate "
"nickname is already used)"),
"server_nicks", "string",
N_("nicknames to use on IRC server (separated by comma)"),
NULL, 0, 0, "", NULL, NULL);
irc_config_server_username = weechat_config_new_option (
irc_config_file, ptr_section, "server_username", "string",
+2 -9
View File
@@ -368,15 +368,8 @@ irc_display_server (struct t_irc_server *server, int with_detail)
weechat_printf (NULL, " server_password . . . . . : %s",
(server->password && server->password[0]) ?
_("(hidden)") : "");
weechat_printf (NULL,
" server_nick1/2/3 . . . . . : %s %s/ %s%s %s/ %s%s",
server->nick1,
IRC_COLOR_CHAT_DELIMITERS,
IRC_COLOR_CHAT,
server->nick2,
IRC_COLOR_CHAT_DELIMITERS,
IRC_COLOR_CHAT,
server->nick3);
weechat_printf (NULL, " server_nicks . . . . . . . : %s",
server->nicks);
weechat_printf (NULL, " server_username . . . . . : %s",
server->username);
weechat_printf (NULL, " server_realname . . . . . : %s",
+64 -82
View File
@@ -5265,56 +5265,47 @@ irc_protocol_cmd_432 (struct t_irc_server *server, int argc, char **argv,
{
/* Note: this IRC command can not be ignored */
int i, nick_found, nick_to_use;
irc_protocol_cmd_error (server, argc, argv, argv_eol, ignore, highlight);
if (!server->is_connected)
{
if (strcmp (server->nick, server->nick1) == 0)
nick_found = -1;
nick_to_use = -1;
for (i = 0; i < server->nicks_count; i++)
{
weechat_printf (server->buffer,
_("%s%s: nickname \"%s\" is invalid, "
"trying 2nd nickname \"%s\""),
weechat_prefix ("info"), "irc", server->nick,
server->nick2);
free (server->nick);
server->nick = strdup (server->nick2);
if (strcmp (server->nick, server->nicks_array[i]) == 0)
{
nick_found = i;
break;
}
}
if (nick_found < 0)
nick_to_use = 0;
else
{
if (strcmp (server->nick, server->nick2) == 0)
{
weechat_printf (server->buffer,
_("%s%s: nickname \"%s\" is invalid, "
"trying 3rd nickname \"%s\""),
weechat_prefix ("info"), "irc", server->nick,
server->nick3);
free (server->nick);
server->nick = strdup (server->nick3);
}
else
{
if (strcmp (server->nick, server->nick3) == 0)
{
weechat_printf (server->buffer,
_("%s%s: all declared nicknames are "
"already in use or invalid, closing "
"connection with server!"),
weechat_prefix ("error"), "irc");
irc_server_disconnect (server, 1);
return WEECHAT_RC_OK;
}
else
{
weechat_printf (server->buffer,
_("%s%s: nickname \"%s\" is invalid, "
"trying 1st nickname \"%s\""),
weechat_prefix ("info"), "irc",
server->nick, server->nick1);
free (server->nick);
server->nick = strdup (server->nick1);
}
}
if (nick_found < server->nicks_count - 1)
nick_to_use = nick_found + 1;
}
if (nick_to_use < 0)
{
weechat_printf (server->buffer,
_("%s%s: all declared nicknames are "
"already in use or invalid, closing "
"connection with server"),
weechat_prefix ("error"), "irc");
irc_server_disconnect (server, 1);
return WEECHAT_RC_OK;
}
weechat_printf (server->buffer,
_("%s%s: nickname \"%s\" is invalid, "
"trying nickname #%d (\"%s\")"),
weechat_prefix ("info"), "irc", server->nick,
nick_to_use + 1, server->nicks_array[nick_to_use]);
free (server->nick);
server->nick = strdup (server->nicks_array[nick_to_use]);
irc_server_sendf (server, "NICK %s", server->nick);
}
@@ -5331,54 +5322,45 @@ irc_protocol_cmd_433 (struct t_irc_server *server, int argc, char **argv,
{
/* Note: this IRC command can not be ignored */
int i, nick_found, nick_to_use;
if (!server->is_connected)
{
if (strcmp (server->nick, server->nick1) == 0)
nick_found = -1;
nick_to_use = -1;
for (i = 0; i < server->nicks_count; i++)
{
weechat_printf (server->buffer,
_("%s%s: nickname \"%s\" is already in use, "
"trying 2nd nickname \"%s\""),
weechat_prefix ("info"), "irc", server->nick,
server->nick2);
free (server->nick);
server->nick = strdup (server->nick2);
if (strcmp (server->nick, server->nicks_array[i]) == 0)
{
nick_found = i;
break;
}
}
if (nick_found < 0)
nick_to_use = 0;
else
{
if (strcmp (server->nick, server->nick2) == 0)
{
weechat_printf (server->buffer,
_("%s%s: nickname \"%s\" is already in use, "
"trying 3rd nickname \"%s\""),
weechat_prefix ("info"), "irc", server->nick,
server->nick3);
free (server->nick);
server->nick = strdup (server->nick3);
}
else
{
if (strcmp (server->nick, server->nick3) == 0)
{
weechat_printf (server->buffer,
_("%s%s: all declared nicknames are "
"already in use, closing connection "
"with server!"),
weechat_prefix ("error"), "irc");
irc_server_disconnect (server, 1);
return WEECHAT_RC_OK;
}
else
{
weechat_printf (server->buffer,
_("%s%s: nickname \"%s\" is already in use, "
"trying 1st nickname \"%s\""),
weechat_prefix ("info"), "irc",
server->nick, server->nick1);
free (server->nick);
server->nick = strdup (server->nick1);
}
}
if (nick_found < server->nicks_count - 1)
nick_to_use = nick_found + 1;
}
if (nick_to_use < 0)
{
weechat_printf (server->buffer,
_("%s%s: all declared nicknames are "
"already in use, closing "
"connection with server"),
weechat_prefix ("error"), "irc");
irc_server_disconnect (server, 1);
return WEECHAT_RC_OK;
}
weechat_printf (server->buffer,
_("%s%s: nickname \"%s\" is already in use, "
"trying nickname #%d (\"%s\")"),
weechat_prefix ("info"), "irc", server->nick,
nick_to_use + 1, server->nicks_array[nick_to_use]);
free (server->nick);
server->nick = strdup (server->nicks_array[nick_to_use]);
irc_server_sendf (server, "NICK %s", server->nick);
}
else
+43 -49
View File
@@ -91,9 +91,9 @@ irc_server_init (struct t_irc_server *server)
server->ipv6 = 0;
server->ssl = 0;
server->password = NULL;
server->nick1 = NULL;
server->nick2 = NULL;
server->nick3 = NULL;
server->nicks = NULL;
server->nicks_count = 0;
server->nicks_array = NULL;
server->username = NULL;
server->realname = NULL;
server->hostname = NULL;
@@ -145,6 +145,7 @@ irc_server_init (struct t_irc_server *server)
* -1 = invalid syntax
*/
/*
int
irc_server_init_with_url (struct t_irc_server *server, char *irc_url)
{
@@ -249,7 +250,7 @@ irc_server_init_with_url (struct t_irc_server *server, char *irc_url)
server->ipv6 = ipv6;
server->ssl = ssl;
/* some default values */
// some default values
if (server->port < 0)
server->port = IRC_SERVER_DEFAULT_PORT;
server->nick2 = (char *)malloc ((strlen (server->nick1) + 2) * sizeof (char));
@@ -261,6 +262,7 @@ irc_server_init_with_url (struct t_irc_server *server, char *irc_url)
return 0;
}
*/
/*
* irc_server_init_with_config_options: init a server with config options
@@ -342,27 +344,23 @@ irc_server_init_with_config_options (struct t_irc_server *server,
if (ptr_option)
ptr_server->password = strdup (weechat_config_string (ptr_option));
if (ptr_server->nick1)
free (ptr_server->nick1);
ptr_server->nick1 = NULL;
ptr_option = weechat_config_search_option (NULL, section, "server_nick1");
if (ptr_server->nicks)
{
free (ptr_server->nicks);
ptr_server->nicks = NULL;
weechat_string_free_exploded (ptr_server->nicks_array);
ptr_server->nicks_array = NULL;
}
ptr_server->nicks_count = 0;
ptr_option = weechat_config_search_option (NULL, section, "server_nicks");
if (ptr_option)
ptr_server->nick1 = strdup (weechat_config_string (ptr_option));
if (ptr_server->nick2)
free (ptr_server->nick2);
ptr_server->nick2 = NULL;
ptr_option = weechat_config_search_option (NULL, section, "server_nick2");
if (ptr_option)
ptr_server->nick2 = strdup (weechat_config_string (ptr_option));
{
ptr_server->nicks = strdup (weechat_config_string (ptr_option));
ptr_server->nicks_array = weechat_string_explode (weechat_config_string (ptr_option),
",", 0, 0,
&ptr_server->nicks_count);
}
if (ptr_server->nick3)
free (ptr_server->nick3);
ptr_server->nick3 = NULL;
ptr_option = weechat_config_search_option (NULL, section, "server_nick3");
if (ptr_option)
ptr_server->nick3 = strdup (weechat_config_string (ptr_option));
if (ptr_server->username)
free (ptr_server->username);
ptr_server->username = NULL;
@@ -537,12 +535,10 @@ irc_server_free_data (struct t_irc_server *server)
free (server->address);
if (server->password)
free (server->password);
if (server->nick1)
free (server->nick1);
if (server->nick2)
free (server->nick2);
if (server->nick3)
free (server->nick3);
if (server->nicks)
free (server->nicks);
if (server->nicks_array)
weechat_string_free_exploded (server->nicks_array);
if (server->username)
free (server->username);
if (server->realname)
@@ -626,9 +622,9 @@ struct t_irc_server *
irc_server_new (char *name, int autoconnect, int autoreconnect,
int autoreconnect_delay, int temp_server, char *address,
int port, int ipv6, int ssl, char *password,
char *nick1, char *nick2, char *nick3, char *username,
char *realname, char *hostname, char *command, int command_delay,
char *autojoin, int autorejoin, char *notify_levels)
char *nicks, char *username, char *realname, char *hostname,
char *command, int command_delay, char *autojoin,
int autorejoin, char *notify_levels)
{
struct t_irc_server *new_server;
@@ -638,13 +634,11 @@ irc_server_new (char *name, int autoconnect, int autoreconnect,
if (irc_debug)
{
weechat_log_printf ("Creating new server (name:%s, address:%s, "
"port:%d, pwd:%s, nick1:%s, nick2:%s, nick3:%s, "
"username:%s, realname:%s, hostname: %s, "
"command:%s, autojoin:%s, autorejoin:%s, "
"notify_levels:%s)",
"port:%d, pwd:%s, nicks:%s, username:%s, "
"realname:%s, hostname: %s, command:%s, "
"autojoin:%s, autorejoin:%s, notify_levels:%s)",
name, address, port, (password) ? password : "",
(nick1) ? nick1 : "", (nick2) ? nick2 : "",
(nick3) ? nick3 : "", (username) ? username : "",
(nicks) ? nicks : "", (username) ? username : "",
(realname) ? realname : "",
(hostname) ? hostname : "",
(command) ? command : "",
@@ -665,9 +659,12 @@ irc_server_new (char *name, int autoconnect, int autoreconnect,
new_server->ipv6 = ipv6;
new_server->ssl = ssl;
new_server->password = (password) ? strdup (password) : strdup ("");
new_server->nick1 = (nick1) ? strdup (nick1) : strdup ("weechat_user");
new_server->nick2 = (nick2) ? strdup (nick2) : strdup ("weechat2");
new_server->nick3 = (nick3) ? strdup (nick3) : strdup ("weechat3");
new_server->nicks = (nicks) ?
strdup (nicks) : strdup (IRC_SERVER_DEFAULT_NICKS);
new_server->nicks_array = weechat_string_explode ((nicks) ?
nicks : IRC_SERVER_DEFAULT_NICKS,
",", 0, 0,
&new_server->nicks_count);
new_server->username =
(username) ? strdup (username) : strdup ("weechat");
new_server->realname =
@@ -713,9 +710,7 @@ irc_server_duplicate (struct t_irc_server *server, char *new_name)
server->ipv6,
server->ssl,
server->password,
server->nick1,
server->nick2,
server->nick3,
server->nicks,
server->username,
server->realname,
server->hostname,
@@ -1599,13 +1594,12 @@ irc_server_login (struct t_irc_server *server)
irc_server_sendf (server, "PASS %s", server->password);
if (!server->nick)
server->nick = strdup (server->nick1);
server->nick = strdup (server->nicks_array[0]);
irc_server_sendf (server,
"NICK %s\n"
"USER %s %s %s :%s",
server->nick, server->username, server->username,
server->address, server->realname);
//gui_input_draw (weechat_current_buffer, 1);
}
/*
@@ -2828,9 +2822,9 @@ irc_server_print_log ()
weechat_log_printf (" password. . . . . . : '%s'",
(ptr_server->password && ptr_server->password[0]) ?
"(hidden)" : ptr_server->password);
weechat_log_printf (" nick1 . . . . . . . : '%s'", ptr_server->nick1);
weechat_log_printf (" nick2 . . . . . . . : '%s'", ptr_server->nick2);
weechat_log_printf (" nick3 . . . . . . . : '%s'", ptr_server->nick3);
weechat_log_printf (" nicks . . . . . . . : '%s'", ptr_server->nicks);
weechat_log_printf (" nicks_count . . . . : %d", ptr_server->nicks_count);
weechat_log_printf (" nicks_array . . . . : 0x%x", ptr_server->nicks_array);
weechat_log_printf (" username. . . . . . : '%s'", ptr_server->username);
weechat_log_printf (" realname. . . . . . : '%s'", ptr_server->realname);
weechat_log_printf (" command . . . . . . : '%s'",
+6 -6
View File
@@ -30,8 +30,9 @@
#define NI_MAXHOST 256
#endif
#define IRC_SERVER_DEFAULT_PORT 6667
#define IRC_SERVER_DEFAULT_PORT 6667
#define IRC_SERVER_DEFAULT_PREFIXES_LIST "@%+~&!-"
#define IRC_SERVER_DEFAULT_NICKS "weechat1,weechat2,weechat3"
#define irc_server_sendf_queued(server, fmt, argz...) \
if (server) \
@@ -65,9 +66,9 @@ struct t_irc_server
int ipv6; /* use IPv6 protocol */
int ssl; /* SSL protocol */
char *password; /* password for server */
char *nick1; /* first nickname for the server */
char *nick2; /* alternate nickname */
char *nick3; /* 2nd alternate nickname */
char *nicks; /* nicknames as one string */
int nicks_count; /* number of nicknames */
char **nicks_array; /* exploded nicknames */
char *username; /* user name */
char *realname; /* real name */
char *hostname; /* custom hostname */
@@ -147,8 +148,7 @@ extern struct t_irc_server *irc_server_new (char *name, int autoconnect,
int autoreconnect_delay,
int temp_server, char *address,
int port, int ipv6, int ssl,
char *password, char *nick1,
char *nick2, char *nick3,
char *password, char *nicks,
char *username, char *realname,
char *hostname, char *command,
int command_delay, char *autojoin,