mirror of
https://github.com/weechat/weechat.git
synced 2026-06-27 21:36:37 +02:00
/nick command is now allowed when not connected to server
This commit is contained in:
@@ -5,6 +5,7 @@ ChangeLog - 2005-11-29
|
||||
|
||||
|
||||
Version 0.1.7 (under dev!):
|
||||
* /nick command is now allowed when not connected to server
|
||||
* added server/channel arg to /buffer command for jumping to buffer
|
||||
* fixed display bug in chat window when a message length equals to window
|
||||
width
|
||||
|
||||
@@ -2332,18 +2332,13 @@ gui_draw_buffer_infobar (t_gui_buffer *buffer, int erase)
|
||||
*/
|
||||
|
||||
int
|
||||
gui_get_input_width (t_gui_window *window)
|
||||
gui_get_input_width (t_gui_window *window, char *nick)
|
||||
{
|
||||
if (CHANNEL(window->buffer))
|
||||
return (window->win_width - strlen (CHANNEL(window->buffer)->name) -
|
||||
strlen (SERVER(window->buffer)->nick) - 4);
|
||||
strlen (nick) - 4);
|
||||
else
|
||||
{
|
||||
if (SERVER(window->buffer) && (SERVER(window->buffer)->is_connected))
|
||||
return (window->win_width - strlen (SERVER(window->buffer)->nick) - 3);
|
||||
else
|
||||
return (window->win_width - strlen (cfg_look_no_nickname) - 3);
|
||||
}
|
||||
return (window->win_width - strlen (nick) - 3);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2406,7 +2401,12 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
if (buffer->input_buffer_length == 0)
|
||||
buffer->input_buffer[0] = '\0';
|
||||
|
||||
input_width = gui_get_input_width (ptr_win);
|
||||
if (SERVER(buffer))
|
||||
ptr_nickname = (SERVER(buffer)->nick) ?
|
||||
SERVER(buffer)->nick : SERVER(buffer)->nick1;
|
||||
else
|
||||
ptr_nickname = cfg_look_no_nickname;
|
||||
input_width = gui_get_input_width (ptr_win, ptr_nickname);
|
||||
|
||||
if (buffer->input_buffer_pos - buffer->input_buffer_1st_display + 1 >
|
||||
input_width)
|
||||
@@ -2436,7 +2436,7 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_CHANNEL);
|
||||
wprintw (ptr_win->win_input, "%s ", CHANNEL(buffer)->name);
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_NICK);
|
||||
wprintw (ptr_win->win_input, "%s", SERVER(buffer)->nick);
|
||||
wprintw (ptr_win->win_input, "%s", ptr_nickname);
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_DELIMITERS);
|
||||
wprintw (ptr_win->win_input, "] ");
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT);
|
||||
@@ -2461,10 +2461,6 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_DELIMITERS);
|
||||
mvwprintw (ptr_win->win_input, 0, 0, "[");
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_NICK);
|
||||
if (SERVER(buffer) && (SERVER(buffer)->is_connected))
|
||||
ptr_nickname = SERVER(buffer)->nick;
|
||||
else
|
||||
ptr_nickname = cfg_look_no_nickname;
|
||||
wprintw (ptr_win->win_input, "%s", ptr_nickname);
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_DELIMITERS);
|
||||
wprintw (ptr_win->win_input, "] ");
|
||||
|
||||
@@ -174,7 +174,7 @@ t_irc_command irc_commands[] =
|
||||
N_("[-all] nickname"),
|
||||
N_("-all: set new nickname for all connected servers\n"
|
||||
"nickname: new nickname"),
|
||||
1, 2, 1, irc_cmd_send_nick, NULL, irc_cmd_recv_nick },
|
||||
1, 2, 0, irc_cmd_send_nick, NULL, irc_cmd_recv_nick },
|
||||
{ "notice", N_("send notice message to user"),
|
||||
N_("nickname text"), N_("nickname: user to send notice to\ntext: text to send"),
|
||||
2, MAX_ARGS, 1, NULL, irc_cmd_send_notice, irc_cmd_recv_notice },
|
||||
|
||||
+30
-3
@@ -1213,6 +1213,31 @@ irc_cmd_send_names (t_irc_server *server, char *arguments)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_cmd_send_nick_server: change nickname on a server
|
||||
*/
|
||||
|
||||
void
|
||||
irc_cmd_send_nick_server (t_irc_server *server, char *nickname)
|
||||
{
|
||||
t_irc_channel *ptr_channel;
|
||||
|
||||
if (server->is_connected)
|
||||
server_sendf (server, "NICK %s\r\n", nickname);
|
||||
else
|
||||
{
|
||||
if (server->nick)
|
||||
free (server->nick);
|
||||
server->nick = strdup (nickname);
|
||||
gui_draw_buffer_input (server->buffer, 1);
|
||||
for (ptr_channel = server->channels; ptr_channel;
|
||||
ptr_channel = ptr_channel->next_channel)
|
||||
{
|
||||
gui_draw_buffer_input (ptr_channel->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_cmd_send_nick: change nickname
|
||||
*/
|
||||
@@ -1222,6 +1247,9 @@ irc_cmd_send_nick (t_irc_server *server, int argc, char **argv)
|
||||
{
|
||||
t_irc_server *ptr_server;
|
||||
|
||||
if (!server)
|
||||
return 0;
|
||||
|
||||
if (argc == 2)
|
||||
{
|
||||
if (strncmp (argv[0], "-all", 4) != 0)
|
||||
@@ -1230,14 +1258,13 @@ irc_cmd_send_nick (t_irc_server *server, int argc, char **argv)
|
||||
for (ptr_server = irc_servers; ptr_server;
|
||||
ptr_server = ptr_server->next_server)
|
||||
{
|
||||
if (ptr_server->is_connected)
|
||||
server_sendf (ptr_server, "NICK %s\r\n", argv[1]);
|
||||
irc_cmd_send_nick_server (ptr_server, argv[1]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (argc == 1)
|
||||
server_sendf (server, "NICK %s\r\n", argv[0]);
|
||||
irc_cmd_send_nick_server (server, argv[0]);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ ChangeLog - 2005-11-29
|
||||
|
||||
|
||||
Version 0.1.7 (under dev!):
|
||||
* /nick command is now allowed when not connected to server
|
||||
* added server/channel arg to /buffer command for jumping to buffer
|
||||
* fixed display bug in chat window when a message length equals to window
|
||||
width
|
||||
|
||||
@@ -2332,18 +2332,13 @@ gui_draw_buffer_infobar (t_gui_buffer *buffer, int erase)
|
||||
*/
|
||||
|
||||
int
|
||||
gui_get_input_width (t_gui_window *window)
|
||||
gui_get_input_width (t_gui_window *window, char *nick)
|
||||
{
|
||||
if (CHANNEL(window->buffer))
|
||||
return (window->win_width - strlen (CHANNEL(window->buffer)->name) -
|
||||
strlen (SERVER(window->buffer)->nick) - 4);
|
||||
strlen (nick) - 4);
|
||||
else
|
||||
{
|
||||
if (SERVER(window->buffer) && (SERVER(window->buffer)->is_connected))
|
||||
return (window->win_width - strlen (SERVER(window->buffer)->nick) - 3);
|
||||
else
|
||||
return (window->win_width - strlen (cfg_look_no_nickname) - 3);
|
||||
}
|
||||
return (window->win_width - strlen (nick) - 3);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2406,7 +2401,12 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
if (buffer->input_buffer_length == 0)
|
||||
buffer->input_buffer[0] = '\0';
|
||||
|
||||
input_width = gui_get_input_width (ptr_win);
|
||||
if (SERVER(buffer))
|
||||
ptr_nickname = (SERVER(buffer)->nick) ?
|
||||
SERVER(buffer)->nick : SERVER(buffer)->nick1;
|
||||
else
|
||||
ptr_nickname = cfg_look_no_nickname;
|
||||
input_width = gui_get_input_width (ptr_win, ptr_nickname);
|
||||
|
||||
if (buffer->input_buffer_pos - buffer->input_buffer_1st_display + 1 >
|
||||
input_width)
|
||||
@@ -2436,7 +2436,7 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_CHANNEL);
|
||||
wprintw (ptr_win->win_input, "%s ", CHANNEL(buffer)->name);
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_NICK);
|
||||
wprintw (ptr_win->win_input, "%s", SERVER(buffer)->nick);
|
||||
wprintw (ptr_win->win_input, "%s", ptr_nickname);
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_DELIMITERS);
|
||||
wprintw (ptr_win->win_input, "] ");
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT);
|
||||
@@ -2461,10 +2461,6 @@ gui_draw_buffer_input (t_gui_buffer *buffer, int erase)
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_DELIMITERS);
|
||||
mvwprintw (ptr_win->win_input, 0, 0, "[");
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_NICK);
|
||||
if (SERVER(buffer) && (SERVER(buffer)->is_connected))
|
||||
ptr_nickname = SERVER(buffer)->nick;
|
||||
else
|
||||
ptr_nickname = cfg_look_no_nickname;
|
||||
wprintw (ptr_win->win_input, "%s", ptr_nickname);
|
||||
gui_window_set_weechat_color (ptr_win->win_input, COLOR_WIN_INPUT_DELIMITERS);
|
||||
wprintw (ptr_win->win_input, "] ");
|
||||
|
||||
@@ -174,7 +174,7 @@ t_irc_command irc_commands[] =
|
||||
N_("[-all] nickname"),
|
||||
N_("-all: set new nickname for all connected servers\n"
|
||||
"nickname: new nickname"),
|
||||
1, 2, 1, irc_cmd_send_nick, NULL, irc_cmd_recv_nick },
|
||||
1, 2, 0, irc_cmd_send_nick, NULL, irc_cmd_recv_nick },
|
||||
{ "notice", N_("send notice message to user"),
|
||||
N_("nickname text"), N_("nickname: user to send notice to\ntext: text to send"),
|
||||
2, MAX_ARGS, 1, NULL, irc_cmd_send_notice, irc_cmd_recv_notice },
|
||||
|
||||
@@ -1213,6 +1213,31 @@ irc_cmd_send_names (t_irc_server *server, char *arguments)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_cmd_send_nick_server: change nickname on a server
|
||||
*/
|
||||
|
||||
void
|
||||
irc_cmd_send_nick_server (t_irc_server *server, char *nickname)
|
||||
{
|
||||
t_irc_channel *ptr_channel;
|
||||
|
||||
if (server->is_connected)
|
||||
server_sendf (server, "NICK %s\r\n", nickname);
|
||||
else
|
||||
{
|
||||
if (server->nick)
|
||||
free (server->nick);
|
||||
server->nick = strdup (nickname);
|
||||
gui_draw_buffer_input (server->buffer, 1);
|
||||
for (ptr_channel = server->channels; ptr_channel;
|
||||
ptr_channel = ptr_channel->next_channel)
|
||||
{
|
||||
gui_draw_buffer_input (ptr_channel->buffer, 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* irc_cmd_send_nick: change nickname
|
||||
*/
|
||||
@@ -1222,6 +1247,9 @@ irc_cmd_send_nick (t_irc_server *server, int argc, char **argv)
|
||||
{
|
||||
t_irc_server *ptr_server;
|
||||
|
||||
if (!server)
|
||||
return 0;
|
||||
|
||||
if (argc == 2)
|
||||
{
|
||||
if (strncmp (argv[0], "-all", 4) != 0)
|
||||
@@ -1230,14 +1258,13 @@ irc_cmd_send_nick (t_irc_server *server, int argc, char **argv)
|
||||
for (ptr_server = irc_servers; ptr_server;
|
||||
ptr_server = ptr_server->next_server)
|
||||
{
|
||||
if (ptr_server->is_connected)
|
||||
server_sendf (ptr_server, "NICK %s\r\n", argv[1]);
|
||||
irc_cmd_send_nick_server (ptr_server, argv[1]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (argc == 1)
|
||||
server_sendf (server, "NICK %s\r\n", argv[0]);
|
||||
irc_cmd_send_nick_server (server, argv[0]);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user