649 |
*/ |
*/ |
650 |
|
|
651 |
void |
void |
652 |
user_command (t_irc_server *server, char *command) |
user_command (t_irc_server *server, t_gui_buffer *buffer, char *command) |
653 |
{ |
{ |
654 |
t_irc_nick *ptr_nick; |
t_irc_nick *ptr_nick; |
655 |
|
|
656 |
if ((!command) || (!command[0]) || (command[0] == '\r') || (command[0] == '\n')) |
if ((!command) || (!command[0]) || (command[0] == '\r') || (command[0] == '\n')) |
657 |
return; |
return; |
658 |
|
|
659 |
if ((command[0] == '/') && (command[1] != '/')) |
if ((command[0] == '/') && (command[1] != '/')) |
660 |
{ |
{ |
661 |
/* WeeChat internal command (or IRC command) */ |
/* WeeChat internal command (or IRC command) */ |
663 |
} |
} |
664 |
else |
else |
665 |
{ |
{ |
666 |
|
if (!buffer) |
667 |
|
buffer = gui_current_window->buffer; |
668 |
|
|
669 |
if ((command[0] == '/') && (command[1] == '/')) |
if ((command[0] == '/') && (command[1] == '/')) |
670 |
command++; |
command++; |
671 |
if (server && (!BUFFER_IS_SERVER(gui_current_window->buffer))) |
|
672 |
|
if (server && (!BUFFER_IS_SERVER(buffer))) |
673 |
{ |
{ |
674 |
if (CHANNEL(gui_current_window->buffer)->dcc_chat) |
if (CHANNEL(buffer)->dcc_chat) |
675 |
dcc_chat_sendf ((t_irc_dcc *)(CHANNEL(gui_current_window->buffer)->dcc_chat), |
dcc_chat_sendf ((t_irc_dcc *)(CHANNEL(buffer)->dcc_chat), |
676 |
"%s\r\n", command); |
"%s\r\n", command); |
677 |
else |
else |
678 |
server_sendf (server, "PRIVMSG %s :%s\r\n", |
server_sendf (server, "PRIVMSG %s :%s\r\n", |
679 |
CHANNEL(gui_current_window->buffer)->name, |
CHANNEL(buffer)->name, command); |
|
command); |
|
680 |
|
|
681 |
if (BUFFER_IS_PRIVATE(gui_current_window->buffer)) |
if (CHANNEL(buffer)->type == CHAT_PRIVATE) |
682 |
{ |
{ |
683 |
gui_printf_type_color (CHANNEL(gui_current_window->buffer)->buffer, |
gui_printf_type_color (CHANNEL(buffer)->buffer, |
684 |
MSG_TYPE_NICK, |
MSG_TYPE_NICK, |
685 |
COLOR_WIN_CHAT_DARK, "<"); |
COLOR_WIN_CHAT_DARK, "<"); |
686 |
gui_printf_type_color (CHANNEL(gui_current_window->buffer)->buffer, |
gui_printf_type_color (CHANNEL(buffer)->buffer, |
687 |
MSG_TYPE_NICK, |
MSG_TYPE_NICK, |
688 |
COLOR_WIN_NICK_SELF, |
COLOR_WIN_NICK_SELF, |
689 |
"%s", server->nick); |
"%s", server->nick); |
690 |
gui_printf_type_color (CHANNEL(gui_current_window->buffer)->buffer, |
gui_printf_type_color (CHANNEL(buffer)->buffer, |
691 |
MSG_TYPE_NICK, |
MSG_TYPE_NICK, |
692 |
COLOR_WIN_CHAT_DARK, "> "); |
COLOR_WIN_CHAT_DARK, "> "); |
693 |
gui_printf_type_color (CHANNEL(gui_current_window->buffer)->buffer, |
gui_printf_type_color (CHANNEL(buffer)->buffer, |
694 |
MSG_TYPE_MSG, |
MSG_TYPE_MSG, |
695 |
COLOR_WIN_CHAT, "%s\n", command); |
COLOR_WIN_CHAT, "%s\n", command); |
696 |
} |
} |
697 |
else |
else |
698 |
{ |
{ |
699 |
ptr_nick = nick_search (CHANNEL(gui_current_window->buffer), server->nick); |
ptr_nick = nick_search (CHANNEL(buffer), server->nick); |
700 |
if (ptr_nick) |
if (ptr_nick) |
701 |
{ |
{ |
702 |
irc_display_nick (CHANNEL(gui_current_window->buffer)->buffer, ptr_nick, |
irc_display_nick (CHANNEL(buffer)->buffer, ptr_nick, |
703 |
MSG_TYPE_NICK, 1, 1, 0); |
MSG_TYPE_NICK, 1, 1, 0); |
704 |
gui_printf_color (CHANNEL(gui_current_window->buffer)->buffer, |
gui_printf_color (CHANNEL(buffer)->buffer, |
705 |
COLOR_WIN_CHAT, "%s\n", command); |
COLOR_WIN_CHAT, "%s\n", command); |
706 |
} |
} |
707 |
else |
else |