1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-07 02:03: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
+107 -14
View File
@@ -177,10 +177,11 @@ t_weechat_command weechat_commands[] =
NULL, 0, 1, 0, weechat_cmd_save, NULL },
{ "server", N_("list, add or remove servers"),
N_("[list [servername]] | [listfull [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]"),
"[servername hostname port [-auto | -noauto] [-ipv6] [-ssl] "
"[-pwd password] [-nicks nick1 nick2 nick3] [-username username] "
"[-realname realname] [-command command] [-autojoin channel[,channel]] ] | "
"[copy server newservername] [rename servername newservername] [del "
"servername]"),
N_(" list: list servers (no parameter implies this list)\n"
" listfull: list servers with detailed info for each server\n"
"servername: server name, for internal and display use\n"
@@ -194,8 +195,10 @@ t_weechat_command weechat_commands[] =
" nick3: second alternate nick for server\n"
" username: user name\n"
" realname: real name of user\n"
" copy: duplicate a server\n"
" rename: rename a server\n"
" del: delete a server"),
"del|list|listfull", 0, MAX_ARGS, 0, weechat_cmd_server, NULL },
"copy|rename|del|list|listfull %S %S", 0, MAX_ARGS, 0, weechat_cmd_server, NULL },
{ "set", N_("set config options"),
N_("[option [ = value]]"),
N_("option: name of an option (if name is full "
@@ -3022,23 +3025,113 @@ weechat_cmd_server (t_irc_server *server, t_irc_channel *channel,
}
else
{
if (ascii_strcasecmp (argv[0], "del") == 0)
if (ascii_strcasecmp (argv[0], "copy") == 0)
{
if (argc < 3)
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL,
_("%s missing server name for \"%s\" command\n"),
WEECHAT_ERROR, "server copy");
return -1;
}
/* look for server by name */
server_found = irc_server_search (argv[1]);
if (!server_found)
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL,
_("%s server \"%s\" not found for \"%s\" command\n"),
WEECHAT_ERROR, argv[1], "server copy");
return -1;
}
/* check if target name already exists */
if (irc_server_search (argv[2]))
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL,
_("%s server \"%s\" already exists for \"%s\" command\n"),
WEECHAT_ERROR, argv[2], "server copy");
return -1;
}
/* duplicate server */
new_server = irc_server_duplicate (server_found, argv[2]);
if (new_server)
{
irc_display_prefix (NULL, NULL, PREFIX_INFO);
gui_printf (NULL, _("Server %s%s%s has been copied to %s%s\n"),
GUI_COLOR(COLOR_WIN_CHAT_SERVER),
argv[1],
GUI_COLOR(COLOR_WIN_CHAT),
GUI_COLOR(COLOR_WIN_CHAT_SERVER),
argv[2]);
gui_window_redraw_all_buffers ();
return 0;
}
return -1;
}
if (ascii_strcasecmp (argv[0], "rename") == 0)
{
if (argc < 3)
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL,
_("%s missing server name for \"%s\" command\n"),
WEECHAT_ERROR, "server rename");
return -1;
}
/* look for server by name */
server_found = irc_server_search (argv[1]);
if (!server_found)
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL,
_("%s server \"%s\" not found for \"%s\" command\n"),
WEECHAT_ERROR, argv[1], "server rename");
return -1;
}
/* check if target name already exists */
if (irc_server_search (argv[2]))
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL,
_("%s server \"%s\" already exists for \"%s\" command\n"),
WEECHAT_ERROR, argv[2], "server rename");
return -1;
}
/* rename server */
if (irc_server_rename (server_found, argv[2]))
{
irc_display_prefix (NULL, NULL, PREFIX_INFO);
gui_printf (NULL, _("Server %s%s%s has been renamed to %s%s\n"),
GUI_COLOR(COLOR_WIN_CHAT_SERVER),
argv[1],
GUI_COLOR(COLOR_WIN_CHAT),
GUI_COLOR(COLOR_WIN_CHAT_SERVER),
argv[2]);
gui_window_redraw_all_buffers ();
return 0;
}
return -1;
}
else if (ascii_strcasecmp (argv[0], "del") == 0)
{
if (argc < 2)
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL,
_("%s missing servername for \"%s\" command\n"),
_("%s missing server name for \"%s\" command\n"),
WEECHAT_ERROR, "server del");
return -1;
}
if (argc > 2)
{
irc_display_prefix (NULL, NULL, PREFIX_ERROR);
gui_printf (NULL,
_("%s too much arguments for \"%s\" command, ignoring arguments\n"),
WEECHAT_WARNING, "server del");
}
/* look for server by name */
server_found = irc_server_search (argv[1]);
+3 -3
View File
@@ -219,7 +219,7 @@ session_save_servers (FILE *file)
rc = rc && (session_write_int (file, SESSION_SERV_AUTOCONNECT, ptr_server->autoconnect));
rc = rc && (session_write_int (file, SESSION_SERV_AUTORECONNECT, ptr_server->autoreconnect));
rc = rc && (session_write_int (file, SESSION_SERV_AUTORECONNECT_DELAY, ptr_server->autoreconnect_delay));
rc = rc && (session_write_int (file, SESSION_SERV_COMMAND_LINE, ptr_server->command_line));
rc = rc && (session_write_int (file, SESSION_SERV_TEMP_SERVER, ptr_server->temp_server));
rc = rc && (session_write_str (file, SESSION_SERV_ADDRESS, ptr_server->address));
rc = rc && (session_write_int (file, SESSION_SERV_PORT, ptr_server->port));
rc = rc && (session_write_int (file, SESSION_SERV_IPV6, ptr_server->ipv6));
@@ -881,8 +881,8 @@ session_load_server (FILE *file)
case SESSION_SERV_AUTORECONNECT_DELAY:
rc = rc && (session_read_int (file, &(session_current_server->autoreconnect_delay)));
break;
case SESSION_SERV_COMMAND_LINE:
rc = rc && (session_read_int (file, &(session_current_server->command_line)));
case SESSION_SERV_TEMP_SERVER:
rc = rc && (session_read_int (file, &(session_current_server->temp_server)));
break;
case SESSION_SERV_ADDRESS:
rc = rc && (session_read_str (file, &(session_current_server->address)));
+1 -1
View File
@@ -54,7 +54,7 @@ enum t_session_server
SESSION_SERV_AUTOCONNECT,
SESSION_SERV_AUTORECONNECT,
SESSION_SERV_AUTORECONNECT_DELAY,
SESSION_SERV_COMMAND_LINE,
SESSION_SERV_TEMP_SERVER,
SESSION_SERV_ADDRESS,
SESSION_SERV_PORT,
SESSION_SERV_IPV6,
+2 -5
View File
@@ -1188,10 +1188,7 @@ config_change_hotlist ()
void
config_change_read_marker ()
{
t_gui_window *ptr_win;
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
gui_window_redraw_buffer (ptr_win->buffer);
gui_window_redraw_all_buffers ();
}
/*
@@ -2526,7 +2523,7 @@ config_write (char *config_name)
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
{
if (!ptr_server->command_line)
if (!ptr_server->temp_server)
{
weechat_iconv_fprintf (file, "\n[server]\n");
weechat_iconv_fprintf (file, "server_name = \"%s\"\n", ptr_server->name);