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

Added /reconnect command (task #5448)

This commit is contained in:
Sebastien Helleu
2007-04-24 12:18:36 +00:00
parent 4ed02bbdcf
commit 97a3d47650
26 changed files with 3084 additions and 2670 deletions
+1
View File
@@ -5,6 +5,7 @@ ChangeLog - 2007-04-24
Version 0.2.5 (under dev!):
* added /reconnect command (task #5448)
* added "-all" option for /connect and /disconnect commands (task #6232)
* improved nick completion: completion with last speakers first and self
nick at the end; added option look_nick_completion_smart, enabled by
+16 -6
View File
@@ -49,18 +49,20 @@ Fenster leeren
Nummer: lösche den Puffer mit der angegebenen Nummer
</programlisting>
<command>connect [Servername]</command>
<command>connect [-all | servername [servername ...]]</command>
<programlisting>
mit einem Server verbinden
connect to server(s)
Servername: Zielserver
-all: connect to all servers
servername: server name to connect
</programlisting>
<command>disconnect [Servername]</command>
<command>disconnect [-all | servername [servername...]]</command>
<programlisting>
Serververbindung trennen
disconnect from server(s)
Servername: Name des zu trennenden Servers
-all: disconnect from all servers
servername: server name to disconnect
</programlisting>
<command>dcc Aktion [Nickname [Datei]]</command>
@@ -134,6 +136,14 @@ autoload: lade automatisch alle Plugins im System- oder Benutzerverzeichnis
Ohne Argument, listet /plugin alle geladenen Plugins auf.
</programlisting>
<command>reconnect [-all | servername [servername ...]]</command>
<programlisting>
reconnect to server(s)
-all: reconnect to all servers
servername: server name to reconnect
</programlisting>
<command>server [Servername] | [Servername Hostname Port [-auto | -noauto] [-ipv6] [-ssl] [-pwd Passwort] [-nicks Nick1 Nick2 Nick3] [-username Benutzername] [-realname Name] [-command Befehl] [-autojoin Channel[,Channel]] ] | [del Servername]</command>
<programlisting>
+14 -4
View File
@@ -49,17 +49,19 @@ clear window(s)
number: clear buffer by number
</programlisting>
<command>connect [servername]</command>
<command>connect [-all | servername [servername ...]]</command>
<programlisting>
connect to a server
connect to server(s)
-all: connect to all servers
servername: server name to connect
</programlisting>
<command>disconnect [servername]</command>
<command>disconnect [-all | servername [servername...]]</command>
<programlisting>
disconnect from a server
disconnect from server(s)
-all: disconnect from all servers
servername: server name to disconnect
</programlisting>
@@ -133,6 +135,14 @@ autoload: autoload plugins in system or user directory
Without argument, /plugin command lists loaded plugins.
</programlisting>
<command>reconnect [-all | servername [servername ...]]</command>
<programlisting>
reconnect to server(s)
-all: reconnect to all servers
servername: server name to reconnect
</programlisting>
<command>server [servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 nick2 nick3] [-username username] [-realname realname] [-command command] [-autojoin channel[,channel]] ] | [del servername]</command>
<programlisting>
+14 -4
View File
@@ -49,17 +49,19 @@ effacer la/les fen
nombre: effacer un tampon par son numéro
</programlisting>
<command>connect [nom_serveur]</command>
<command>connect [-all | nom_serveur [nom_serveur...]]</command>
<programlisting>
se connecter à un serveur
se connecter à un/plusieurs serveur(s)
-all: se connecter à tous les serveurs
nom_serveur: nom du serveur pour se connecter
</programlisting>
<command>disconnect [nom_serveur]</command>
<command>disconnect [-all | nom_serveur [nom_serveur...]]</command>
<programlisting>
se déconnecter d'un serveur
se déconnecter d'un/plusieurs serveur(s)
-all: se déconnecter de tous les serveurs
nom_serveur: nom du serveur pour se déconnecter
</programlisting>
@@ -133,6 +135,14 @@ autoload: charger automatiquement les extensions dans un r
Sans paramètre, la commande /plugin liste les extensions chargées.
</programlisting>
<command>reconnect [-all | nom_serveur [nom_serveur...]]</command>
<programlisting>
se reconnecter à un/plusieurs serveur(s)
-all: se reconnecter à tous les serveurs
nom_serveur: nom du serveur pour se reconnecter
</programlisting>
<command>server [nom_serveur] | [nom_serveur nom/IP port [-auto | -noauto] [-ipv6] [-ssl] [-pwd mot_de_passe] [-nicks pseudo1 pseudo2 pseudo3] [-username nom_utilisateur] [-realname nom_réel] [-command commande] [-autojoin canal[,canal]] ] | [del nom_serveur]</command>
<programlisting>
+200 -188
View File
File diff suppressed because it is too large Load Diff
+200 -188
View File
File diff suppressed because it is too large Load Diff
+200 -188
View File
File diff suppressed because it is too large Load Diff
+201 -189
View File
File diff suppressed because it is too large Load Diff
+200 -188
View File
File diff suppressed because it is too large Load Diff
+200 -188
View File
File diff suppressed because it is too large Load Diff
+201 -191
View File
File diff suppressed because it is too large Load Diff
+94 -1
View File
@@ -151,6 +151,11 @@ t_weechat_command weechat_commands[] =
" unload: unload one or all plugins\n\n"
"Without argument, /plugin command lists loaded plugins."),
"list|listfull|load|autoload|reload|unload %P", 0, 2, 0, weechat_cmd_plugin, NULL },
{ "reconnect", N_("reconnect to server(s)"),
N_("[-all | servername [servername ...]]"),
N_(" -all: reconnect to all servers\n"
"servername: server name to reconnect"),
"%S|-all", 0, MAX_ARGS, 0, weechat_cmd_reconnect, NULL },
{ "server", N_("list, add or remove servers"),
N_("[servername] | "
"[servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 "
@@ -1825,7 +1830,7 @@ weechat_cmd_disconnect_one_server (t_irc_server *server)
}
/*
* weechat_cmd_disconnect: disconnect from a server
* weechat_cmd_disconnect: disconnect from server(s)
*/
int
@@ -2734,6 +2739,94 @@ weechat_cmd_plugin (t_irc_server *server, t_irc_channel *channel,
return 0;
}
/*
* weechat_cmd_reconnect_one_server: reconnect to a server
* return 0 if error, 1 if ok
*/
int
weechat_cmd_reconnect_one_server (t_irc_server *server)
{
if ((!server->is_connected) && (server->child_pid == 0))
{
irc_display_prefix (NULL, server->buffer, PREFIX_ERROR);
gui_printf (server->buffer,
_("%s not connected to server \"%s\"!\n"),
WEECHAT_ERROR, server->name);
return 0;
}
irc_send_quit_server (server, NULL);
server_disconnect (server, 0);
if (server_connect (server))
{
server->reconnect_start = 0;
server->reconnect_join = (server->channels) ? 1 : 0;
}
gui_status_draw (server->buffer, 1);
/* reconnect ok */
return 1;
}
/*
* weechat_cmd_reconnect: reconnect to server(s)
*/
int
weechat_cmd_reconnect (t_irc_server *server, t_irc_channel *channel,
int argc, char **argv)
{
t_gui_buffer *buffer;
t_irc_server *ptr_server;
int i, reconnect_ok;
irc_find_context (server, channel, NULL, &buffer);
if (argc == 0)
reconnect_ok = weechat_cmd_reconnect_one_server (server);
else
{
reconnect_ok = 1;
if (ascii_strcasecmp (argv[0], "-all") == 0)
{
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if ((ptr_server->is_connected) || (ptr_server->child_pid != 0))
{
if (!weechat_cmd_reconnect_one_server (ptr_server))
reconnect_ok = 0;
}
}
}
else
{
for (i = 0; i < argc; i++)
{
ptr_server = server_search (argv[i]);
if (ptr_server)
{
if (!weechat_cmd_reconnect_one_server (ptr_server))
reconnect_ok = 0;
}
else
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL, _("%s server \"%s\" not found\n"),
WEECHAT_ERROR, argv[i]);
reconnect_ok = 0;
}
}
}
}
if (!reconnect_ok)
return -1;
return 0;
}
/*
* weechat_cmd_save: save WeeChat and plugins options to disk
*/
+1
View File
@@ -73,6 +73,7 @@ extern int weechat_cmd_ignore (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_key (t_irc_server *, t_irc_channel *, char *);
extern int weechat_cmd_panel (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_plugin (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_reconnect (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_save (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_server (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_set (t_irc_server *, t_irc_channel *, char *);
+1
View File
@@ -5,6 +5,7 @@ ChangeLog - 2007-04-24
Version 0.2.5 (under dev!):
* added /reconnect command (task #5448)
* added "-all" option for /connect and /disconnect commands (task #6232)
* improved nick completion: completion with last speakers first and self
nick at the end; added option look_nick_completion_smart, enabled by
+16 -6
View File
@@ -49,18 +49,20 @@ Fenster leeren
Nummer: lösche den Puffer mit der angegebenen Nummer
</programlisting>
<command>connect [Servername]</command>
<command>connect [-all | servername [servername ...]]</command>
<programlisting>
mit einem Server verbinden
connect to server(s)
Servername: Zielserver
-all: connect to all servers
servername: server name to connect
</programlisting>
<command>disconnect [Servername]</command>
<command>disconnect [-all | servername [servername...]]</command>
<programlisting>
Serververbindung trennen
disconnect from server(s)
Servername: Name des zu trennenden Servers
-all: disconnect from all servers
servername: server name to disconnect
</programlisting>
<command>dcc Aktion [Nickname [Datei]]</command>
@@ -134,6 +136,14 @@ autoload: lade automatisch alle Plugins im System- oder Benutzerverzeichnis
Ohne Argument, listet /plugin alle geladenen Plugins auf.
</programlisting>
<command>reconnect [-all | servername [servername ...]]</command>
<programlisting>
reconnect to server(s)
-all: reconnect to all servers
servername: server name to reconnect
</programlisting>
<command>server [Servername] | [Servername Hostname Port [-auto | -noauto] [-ipv6] [-ssl] [-pwd Passwort] [-nicks Nick1 Nick2 Nick3] [-username Benutzername] [-realname Name] [-command Befehl] [-autojoin Channel[,Channel]] ] | [del Servername]</command>
<programlisting>
+14 -4
View File
@@ -49,17 +49,19 @@ clear window(s)
number: clear buffer by number
</programlisting>
<command>connect [servername]</command>
<command>connect [-all | servername [servername ...]]</command>
<programlisting>
connect to a server
connect to server(s)
-all: connect to all servers
servername: server name to connect
</programlisting>
<command>disconnect [servername]</command>
<command>disconnect [-all | servername [servername...]]</command>
<programlisting>
disconnect from a server
disconnect from server(s)
-all: disconnect from all servers
servername: server name to disconnect
</programlisting>
@@ -133,6 +135,14 @@ autoload: autoload plugins in system or user directory
Without argument, /plugin command lists loaded plugins.
</programlisting>
<command>reconnect [-all | servername [servername ...]]</command>
<programlisting>
reconnect to server(s)
-all: reconnect to all servers
servername: server name to reconnect
</programlisting>
<command>server [servername] | [servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 nick2 nick3] [-username username] [-realname realname] [-command command] [-autojoin channel[,channel]] ] | [del servername]</command>
<programlisting>
+14 -4
View File
@@ -49,17 +49,19 @@ effacer la/les fen
nombre: effacer un tampon par son numéro
</programlisting>
<command>connect [nom_serveur]</command>
<command>connect [-all | nom_serveur [nom_serveur...]]</command>
<programlisting>
se connecter à un serveur
se connecter à un/plusieurs serveur(s)
-all: se connecter à tous les serveurs
nom_serveur: nom du serveur pour se connecter
</programlisting>
<command>disconnect [nom_serveur]</command>
<command>disconnect [-all | nom_serveur [nom_serveur...]]</command>
<programlisting>
se déconnecter d'un serveur
se déconnecter d'un/plusieurs serveur(s)
-all: se déconnecter de tous les serveurs
nom_serveur: nom du serveur pour se déconnecter
</programlisting>
@@ -133,6 +135,14 @@ autoload: charger automatiquement les extensions dans un r
Sans paramètre, la commande /plugin liste les extensions chargées.
</programlisting>
<command>reconnect [-all | nom_serveur [nom_serveur...]]</command>
<programlisting>
se reconnecter à un/plusieurs serveur(s)
-all: se reconnecter à tous les serveurs
nom_serveur: nom du serveur pour se reconnecter
</programlisting>
<command>server [nom_serveur] | [nom_serveur nom/IP port [-auto | -noauto] [-ipv6] [-ssl] [-pwd mot_de_passe] [-nicks pseudo1 pseudo2 pseudo3] [-username nom_utilisateur] [-realname nom_réel] [-command commande] [-autojoin canal[,canal]] ] | [del nom_serveur]</command>
<programlisting>
+200 -188
View File
File diff suppressed because it is too large Load Diff
+200 -188
View File
File diff suppressed because it is too large Load Diff
+200 -188
View File
File diff suppressed because it is too large Load Diff
+201 -189
View File
File diff suppressed because it is too large Load Diff
+200 -188
View File
File diff suppressed because it is too large Load Diff
+200 -188
View File
File diff suppressed because it is too large Load Diff
+201 -191
View File
File diff suppressed because it is too large Load Diff
+94 -1
View File
@@ -151,6 +151,11 @@ t_weechat_command weechat_commands[] =
" unload: unload one or all plugins\n\n"
"Without argument, /plugin command lists loaded plugins."),
"list|listfull|load|autoload|reload|unload %P", 0, 2, 0, weechat_cmd_plugin, NULL },
{ "reconnect", N_("reconnect to server(s)"),
N_("[-all | servername [servername ...]]"),
N_(" -all: reconnect to all servers\n"
"servername: server name to reconnect"),
"%S|-all", 0, MAX_ARGS, 0, weechat_cmd_reconnect, NULL },
{ "server", N_("list, add or remove servers"),
N_("[servername] | "
"[servername hostname port [-auto | -noauto] [-ipv6] [-ssl] [-pwd password] [-nicks nick1 "
@@ -1825,7 +1830,7 @@ weechat_cmd_disconnect_one_server (t_irc_server *server)
}
/*
* weechat_cmd_disconnect: disconnect from a server
* weechat_cmd_disconnect: disconnect from server(s)
*/
int
@@ -2734,6 +2739,94 @@ weechat_cmd_plugin (t_irc_server *server, t_irc_channel *channel,
return 0;
}
/*
* weechat_cmd_reconnect_one_server: reconnect to a server
* return 0 if error, 1 if ok
*/
int
weechat_cmd_reconnect_one_server (t_irc_server *server)
{
if ((!server->is_connected) && (server->child_pid == 0))
{
irc_display_prefix (NULL, server->buffer, PREFIX_ERROR);
gui_printf (server->buffer,
_("%s not connected to server \"%s\"!\n"),
WEECHAT_ERROR, server->name);
return 0;
}
irc_send_quit_server (server, NULL);
server_disconnect (server, 0);
if (server_connect (server))
{
server->reconnect_start = 0;
server->reconnect_join = (server->channels) ? 1 : 0;
}
gui_status_draw (server->buffer, 1);
/* reconnect ok */
return 1;
}
/*
* weechat_cmd_reconnect: reconnect to server(s)
*/
int
weechat_cmd_reconnect (t_irc_server *server, t_irc_channel *channel,
int argc, char **argv)
{
t_gui_buffer *buffer;
t_irc_server *ptr_server;
int i, reconnect_ok;
irc_find_context (server, channel, NULL, &buffer);
if (argc == 0)
reconnect_ok = weechat_cmd_reconnect_one_server (server);
else
{
reconnect_ok = 1;
if (ascii_strcasecmp (argv[0], "-all") == 0)
{
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if ((ptr_server->is_connected) || (ptr_server->child_pid != 0))
{
if (!weechat_cmd_reconnect_one_server (ptr_server))
reconnect_ok = 0;
}
}
}
else
{
for (i = 0; i < argc; i++)
{
ptr_server = server_search (argv[i]);
if (ptr_server)
{
if (!weechat_cmd_reconnect_one_server (ptr_server))
reconnect_ok = 0;
}
else
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL, _("%s server \"%s\" not found\n"),
WEECHAT_ERROR, argv[i]);
reconnect_ok = 0;
}
}
}
}
if (!reconnect_ok)
return -1;
return 0;
}
/*
* weechat_cmd_save: save WeeChat and plugins options to disk
*/
+1
View File
@@ -73,6 +73,7 @@ extern int weechat_cmd_ignore (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_key (t_irc_server *, t_irc_channel *, char *);
extern int weechat_cmd_panel (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_plugin (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_reconnect (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_save (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_server (t_irc_server *, t_irc_channel *, int, char **);
extern int weechat_cmd_set (t_irc_server *, t_irc_channel *, char *);