1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-29 22:36:38 +02:00

Add IRC command redirection (task #6703)

This commit is contained in:
Sebastien Helleu
2010-10-23 09:54:31 +02:00
parent 0cf04dca7c
commit 868df21122
25 changed files with 1930 additions and 59 deletions
+35 -8
View File
@@ -211,10 +211,10 @@ irc_raw_message_add_to_list (time_t date, const char *prefix,
*/
struct t_irc_raw_message *
irc_raw_message_add (struct t_irc_server *server, int send, int modified,
irc_raw_message_add (struct t_irc_server *server, int flags,
const char *message)
{
char *buf, *buf2, prefix[256];
char *buf, *buf2, prefix[256], prefix_arrow[16];
const unsigned char *ptr_buf;
const char *hexa = "0123456789ABCDEF";
int pos_buf, pos_buf2, char_size, i;
@@ -247,16 +247,43 @@ irc_raw_message_add (struct t_irc_server *server, int send, int modified,
}
buf2[pos_buf2] = '\0';
}
/* build prefix with arrow */
prefix_arrow[0] = '\0';
switch (flags & (IRC_RAW_FLAG_RECV | IRC_RAW_FLAG_SEND
| IRC_RAW_FLAG_MODIFIED | IRC_RAW_FLAG_REDIRECT))
{
case IRC_RAW_FLAG_RECV:
strcpy (prefix_arrow, IRC_RAW_PREFIX_RECV);
break;
case IRC_RAW_FLAG_RECV | IRC_RAW_FLAG_MODIFIED:
strcpy (prefix_arrow, IRC_RAW_PREFIX_RECV_MODIFIED);
break;
case IRC_RAW_FLAG_RECV | IRC_RAW_FLAG_REDIRECT:
strcpy (prefix_arrow, IRC_RAW_PREFIX_RECV_REDIRECT);
break;
case IRC_RAW_FLAG_SEND:
strcpy (prefix_arrow, IRC_RAW_PREFIX_SEND);
break;
case IRC_RAW_FLAG_SEND | IRC_RAW_FLAG_MODIFIED:
strcpy (prefix_arrow, IRC_RAW_PREFIX_SEND_MODIFIED);
break;
default:
if (flags && IRC_RAW_FLAG_RECV)
strcpy (prefix_arrow, IRC_RAW_PREFIX_RECV);
else
strcpy (prefix_arrow, IRC_RAW_PREFIX_SEND);
break;
}
snprintf (prefix, sizeof (prefix), "%s%s%s%s%s",
(server) ? weechat_color ("chat_server") : "",
(server) ? server->name : "",
(server) ? " " : "",
(send) ?
(flags & IRC_RAW_FLAG_SEND) ?
weechat_color ("chat_prefix_quit") :
weechat_color ("chat_prefix_join"),
(send) ?
((modified) ? IRC_RAW_PREFIX_SEND_MOD : IRC_RAW_PREFIX_SEND) :
((modified) ? IRC_RAW_PREFIX_RECV_MOD : IRC_RAW_PREFIX_RECV));
prefix_arrow);
new_raw_message = irc_raw_message_add_to_list (time (NULL),
prefix,
@@ -275,7 +302,7 @@ irc_raw_message_add (struct t_irc_server *server, int send, int modified,
*/
void
irc_raw_print (struct t_irc_server *server, int send, int modified,
irc_raw_print (struct t_irc_server *server, int flags,
const char *message)
{
struct t_irc_raw_message *new_raw_message;
@@ -287,7 +314,7 @@ irc_raw_print (struct t_irc_server *server, int send, int modified,
if (!irc_raw_buffer && (weechat_irc_plugin->debug >= 1))
irc_raw_open (0);
new_raw_message = irc_raw_message_add (server, send, modified, message);
new_raw_message = irc_raw_message_add (server, flags, message);
if (new_raw_message)
{
if (irc_raw_buffer)