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

Added "copy" and "rename" options to /server command

This commit is contained in:
Sebastien Helleu
2007-08-08 08:19:04 +00:00
parent 3c10d2205e
commit f68a2cbfcd
64 changed files with 4992 additions and 4604 deletions
+2 -2
View File
@@ -396,7 +396,7 @@ irc_display_server (t_irc_server *server, int with_detail)
gui_printf (NULL, " server_autoconnect . . . . : %s%s\n",
(server->autoconnect) ? _("on") : _("off"),
(server->command_line) ?
(server->temp_server) ?
_(" (temporary server, will not be saved)") : "");
gui_printf (NULL, " server_autoreconnect . . . : %s\n",
(server->autoreconnect) ? _("on") : _("off"));
@@ -478,6 +478,6 @@ irc_display_server (t_irc_server *server, int with_detail)
gui_printf (NULL, "%s]%s%s\n",
GUI_COLOR(COLOR_WIN_CHAT_DARK),
GUI_COLOR(COLOR_WIN_CHAT),
(server->command_line) ? _(" (temporary)") : "");
(server->temp_server) ? _(" (temporary)") : "");
}
}
+11 -13
View File
@@ -2742,7 +2742,7 @@ irc_recv_cmd_303 (t_irc_server *server, char *host, char *nick, char *arguments)
int
irc_recv_cmd_305 (t_irc_server *server, char *host, char *nick, char *arguments)
{
t_gui_window *ptr_window;
t_gui_window *ptr_win;
/* make C compiler happy */
(void) host;
@@ -2763,11 +2763,10 @@ irc_recv_cmd_305 (t_irc_server *server, char *host, char *nick, char *arguments)
}
server->is_away = 0;
server->away_time = 0;
for (ptr_window = gui_windows; ptr_window;
ptr_window = ptr_window->next_window)
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
{
if (SERVER(ptr_window->buffer) == server)
gui_status_draw (ptr_window->buffer, 1);
if (SERVER(ptr_win->buffer) == server)
gui_status_draw (ptr_win->buffer, 1);
}
return 0;
}
@@ -2779,7 +2778,7 @@ irc_recv_cmd_305 (t_irc_server *server, char *host, char *nick, char *arguments)
int
irc_recv_cmd_306 (t_irc_server *server, char *host, char *nick, char *arguments)
{
t_gui_window *ptr_window;
t_gui_window *ptr_win;
/* make C compiler happy */
(void) host;
@@ -2800,14 +2799,13 @@ irc_recv_cmd_306 (t_irc_server *server, char *host, char *nick, char *arguments)
}
server->is_away = 1;
server->away_time = time (NULL);
for (ptr_window = gui_windows; ptr_window;
ptr_window = ptr_window->next_window)
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
{
if (SERVER(ptr_window->buffer) == server)
gui_status_draw (ptr_window->buffer, 1);
if (SERVER(ptr_window->buffer) == server)
ptr_window->buffer->last_read_line =
ptr_window->buffer->last_line;
if (SERVER(ptr_win->buffer) == server)
gui_status_draw (ptr_win->buffer, 1);
if (SERVER(ptr_win->buffer) == server)
ptr_win->buffer->last_read_line =
ptr_win->buffer->last_line;
}
return 0;
}
+74 -7
View File
@@ -85,7 +85,7 @@ irc_server_init (t_irc_server *server)
server->autoconnect = 0;
server->autoreconnect = 1;
server->autoreconnect_delay = 30;
server->command_line = 0;
server->temp_server = 0;
server->address = NULL;
server->port = -1;
server->ipv6 = 0;
@@ -466,7 +466,7 @@ irc_server_free_all ()
t_irc_server *
irc_server_new (char *name, int autoconnect, int autoreconnect,
int autoreconnect_delay, int command_line, char *address,
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,
@@ -496,7 +496,7 @@ irc_server_new (char *name, int autoconnect, int autoreconnect,
new_server->autoconnect = autoconnect;
new_server->autoreconnect = autoreconnect;
new_server->autoreconnect_delay = autoreconnect_delay;
new_server->command_line = command_line;
new_server->temp_server = temp_server;
new_server->address = strdup (address);
new_server->port = port;
new_server->ipv6 = ipv6;
@@ -525,8 +525,75 @@ irc_server_new (char *name, int autoconnect, int autoreconnect,
return new_server;
}
/*
* irc_server_duplicate: duplicate a server
* return: pointer to new server, NULL if error
*/
t_irc_server *
irc_server_duplicate (t_irc_server *server, char *new_name)
{
t_irc_server *new_server;
/* check if another server exists with this name */
if (irc_server_search (new_name))
return 0;
/* duplicate server */
new_server = irc_server_new (new_name,
server->autoconnect,
server->autoreconnect,
server->autoreconnect_delay,
server->temp_server,
server->address,
server->port,
server->ipv6,
server->ssl,
server->password,
server->nick1,
server->nick2,
server->nick3,
server->username,
server->realname,
server->hostname,
server->command,
server->command_delay,
server->autojoin,
server->autorejoin,
server->notify_levels);
return new_server;
}
/*
* irc_server_rename: rename server (internal name)
* return: 1 if ok, 0 if error
*/
int
irc_server_rename (t_irc_server *server, char *new_name)
{
char *str;
/* check if another server exists with this name */
if (irc_server_search (new_name))
return 0;
/* rename server */
str = strdup (new_name);
if (str)
{
if (server->name)
free (server->name);
server->name = str;
return 1;
}
return 0;
}
/*
* irc_server_send: send data to IRC server
* return number of bytes sent, -1 if error
*/
int
@@ -1911,15 +1978,15 @@ irc_server_reconnect (t_irc_server *server)
*/
void
irc_server_auto_connect (int auto_connect, int command_line)
irc_server_auto_connect (int auto_connect, int temp_server)
{
t_irc_server *ptr_server;
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if ( ((command_line) && (ptr_server->command_line))
|| ((!command_line) && (auto_connect) && (ptr_server->autoconnect)) )
if ( ((temp_server) && (ptr_server->temp_server))
|| ((!temp_server) && (auto_connect) && (ptr_server->autoconnect)) )
{
(void) gui_buffer_new (gui_current_window, ptr_server, NULL,
BUFFER_TYPE_STANDARD, 1);
@@ -2255,7 +2322,7 @@ irc_server_print_log (t_irc_server *server)
weechat_log_printf (" autoconnect . . . . : %d\n", server->autoconnect);
weechat_log_printf (" autoreconnect . . . : %d\n", server->autoreconnect);
weechat_log_printf (" autoreconnect_delay : %d\n", server->autoreconnect_delay);
weechat_log_printf (" command_line. . . . : %d\n", server->command_line);
weechat_log_printf (" temp_server . . . . : %d\n", server->temp_server);
weechat_log_printf (" address . . . . . . : '%s'\n", server->address);
weechat_log_printf (" port. . . . . . . . : %d\n", server->port);
weechat_log_printf (" ipv6. . . . . . . . : %d\n", server->ipv6);
+4 -5
View File
@@ -146,11 +146,11 @@ typedef struct t_irc_server t_irc_server;
struct t_irc_server
{
/* user choices */
char *name; /* name of server (only for display) */
char *name; /* internal name of server */
int autoconnect; /* = 1 if auto connect at startup */
int autoreconnect; /* = 1 if auto reco when disconnected */
int autoreconnect_delay; /* delay before trying again reconnect */
int command_line; /* server was given on command line */
int temp_server; /* server is temporary (will not be saved)*/
char *address; /* address of server (IP or name) */
int port; /* port for server (6667 by default) */
int ipv6; /* use IPv6 protocol */
@@ -373,9 +373,8 @@ extern void irc_server_free_all ();
extern t_irc_server *irc_server_new (char *, int, int, int, int, char *, int, int, int,
char *, char *, char *, char *, char *, char *,
char *, char *, int, char *, int, char *);
extern char *irc_server_get_charset_decode_iso (t_irc_server *);
extern char *irc_server_get_charset_decode_utf (t_irc_server *);
extern char *irc_server_get_charset_encode (t_irc_server *);
extern t_irc_server *irc_server_duplicate (t_irc_server *, char *);
extern int irc_server_rename (t_irc_server *, char *);
extern int irc_server_send (t_irc_server *, char *, int);
extern void irc_server_outqueue_send (t_irc_server *);
extern void irc_server_sendf (t_irc_server *, char *, ...);