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:
@@ -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
@@ -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
@@ -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
@@ -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 *, ...);
|
||||
|
||||
Reference in New Issue
Block a user