mirror of
https://github.com/weechat/weechat.git
synced 2026-06-26 12:56:37 +02:00
Added new return code in plugin API to force highlight (for message handlers only)
This commit is contained in:
@@ -5,6 +5,8 @@ ChangeLog - 2007-03-06
|
||||
|
||||
|
||||
Version 0.2.4 (under dev!):
|
||||
* added new return code in plugin API to force highlight (for message
|
||||
handlers only)
|
||||
* fixed bug with server buffer when "look_one_server_buffer" is ON and
|
||||
server buffer is moved to any number > 1 (bug #19219)
|
||||
* fixed /help command: displays plugin help for redefined commands
|
||||
|
||||
+12
-1
@@ -50,7 +50,7 @@
|
||||
|
||||
|
||||
char *irc_last_command_received = NULL;
|
||||
int command_ignored;
|
||||
int command_ignored, command_force_highlight;
|
||||
|
||||
|
||||
/*
|
||||
@@ -105,6 +105,10 @@ irc_is_highlight (char *message, char *nick)
|
||||
/* empty message ? */
|
||||
if (!message || !message[0])
|
||||
return 0;
|
||||
|
||||
/* highlight asked by a plugin */
|
||||
if (command_force_highlight)
|
||||
return 1;
|
||||
|
||||
/* highlight by nickname */
|
||||
match = strstr (message, nick);
|
||||
@@ -272,6 +276,7 @@ irc_recv_command (t_irc_server *server, char *entire_line,
|
||||
cmd_name,
|
||||
NULL,
|
||||
server->name);
|
||||
command_force_highlight = 0;
|
||||
#ifdef PLUGINS
|
||||
return_code = plugin_msg_handler_exec (server->name,
|
||||
cmd_name,
|
||||
@@ -280,6 +285,12 @@ irc_recv_command (t_irc_server *server, char *entire_line,
|
||||
so we ignore this message in standard handler */
|
||||
if (return_code & PLUGIN_RC_OK_IGNORE_WEECHAT)
|
||||
command_ignored = 1;
|
||||
/* plugin asked for highlight ? */
|
||||
if (return_code & PLUGIN_RC_OK_WITH_HIGHLIGHT)
|
||||
{
|
||||
command_force_highlight = 1;
|
||||
gui_printf (NULL, "highlight!!!\n");
|
||||
}
|
||||
#endif
|
||||
pos = (dup_host) ? strchr (dup_host, '!') : NULL;
|
||||
if (pos)
|
||||
|
||||
@@ -551,6 +551,8 @@ plugin_msg_handler_exec (char *server, char *irc_command, char *irc_message)
|
||||
final_return_code = PLUGIN_RC_OK_IGNORE_WEECHAT;
|
||||
if (return_code & PLUGIN_RC_OK_IGNORE_PLUGINS)
|
||||
return final_return_code;
|
||||
if (return_code & PLUGIN_RC_OK_WITH_HIGHLIGHT)
|
||||
final_return_code = PLUGIN_RC_OK_WITH_HIGHLIGHT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2228,6 +2228,16 @@ weechat_lua_constant_plugin_rc_ok_ignore_all (lua_State *L)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
weechat_lua_constant_plugin_rc_ok_with_highlight (lua_State *L)
|
||||
{
|
||||
/* make C compiler happy */
|
||||
(void) L;
|
||||
|
||||
lua_pushnumber (lua_current_interpreter, PLUGIN_RC_OK_WITH_HIGHLIGHT);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lua subroutines
|
||||
*/
|
||||
@@ -2272,6 +2282,7 @@ const struct luaL_reg weechat_lua_funcs[] = {
|
||||
{ "PLUGIN_RC_OK_IGNORE_WEECHAT", weechat_lua_constant_plugin_rc_ok_ignore_weechat },
|
||||
{ "PLUGIN_RC_OK_IGNORE_PLUGINS", weechat_lua_constant_plugin_rc_ok_ignore_plugins },
|
||||
{ "PLUGIN_RC_OK_IGNORE_ALL", weechat_lua_constant_plugin_rc_ok_ignore_all },
|
||||
{ "PLUGIN_RC_OK_WITH_HIGHLIGHT", weechat_lua_constant_plugin_rc_ok_with_highlight },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
||||
@@ -1940,6 +1940,7 @@ weechat_perl_xs_init (pTHX)
|
||||
newCONSTSUB (stash, "weechat::PLUGIN_RC_OK_IGNORE_WEECHAT", newSViv (PLUGIN_RC_OK_IGNORE_WEECHAT));
|
||||
newCONSTSUB (stash, "weechat::PLUGIN_RC_OK_IGNORE_PLUGINS", newSViv (PLUGIN_RC_OK_IGNORE_PLUGINS));
|
||||
newCONSTSUB (stash, "weechat::PLUGIN_RC_OK_IGNORE_ALL", newSViv (PLUGIN_RC_OK_IGNORE_ALL));
|
||||
newCONSTSUB (stash, "weechat::PLUGIN_RC_OK_WITH_HIGHLIGHT", newSViv (PLUGIN_RC_OK_WITH_HIGHLIGHT));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -2296,6 +2296,7 @@ weechat_python_load (t_weechat_plugin *plugin, char *filename)
|
||||
PyDict_SetItemString(weechat_dict, "PLUGIN_RC_OK_IGNORE_WEECHAT", PyInt_FromLong((long) PLUGIN_RC_OK_IGNORE_WEECHAT));
|
||||
PyDict_SetItemString(weechat_dict, "PLUGIN_RC_OK_IGNORE_PLUGINS", PyInt_FromLong((long) PLUGIN_RC_OK_IGNORE_PLUGINS));
|
||||
PyDict_SetItemString(weechat_dict, "PLUGIN_RC_OK_IGNORE_ALL", PyInt_FromLong((long) PLUGIN_RC_OK_IGNORE_ALL));
|
||||
PyDict_SetItemString(weechat_dict, "PLUGIN_RC_OK_WITH_HIGHLIGHT", PyInt_FromLong((long) PLUGIN_RC_OK_WITH_HIGHLIGHT));
|
||||
|
||||
weechat_outputs = Py_InitModule("weechatOutputs", weechat_python_output_funcs);
|
||||
if (weechat_outputs == NULL)
|
||||
|
||||
@@ -2607,7 +2607,8 @@ weechat_plugin_init (t_weechat_plugin *plugin)
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_KO", INT2NUM(PLUGIN_RC_KO));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_IGNORE_WEECHAT", INT2NUM(PLUGIN_RC_OK_IGNORE_WEECHAT));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_IGNORE_PLUGINS", INT2NUM(PLUGIN_RC_OK_IGNORE_PLUGINS));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_IGNORE_ALL", INT2NUM(PLUGIN_RC_OK_IGNORE_ALL));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_IGNORE_ALL", INT2NUM(PLUGIN_RC_OK_IGNORE_ALL));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_WITH_HIGHLIGHT", INT2NUM(PLUGIN_RC_OK_WITH_HIGHLIGHT));
|
||||
rb_define_module_function (ruby_mWeechat, "register", weechat_ruby_register, -1);
|
||||
rb_define_module_function (ruby_mWeechat, "set_charset", weechat_ruby_set_charset, 1);
|
||||
rb_define_module_function (ruby_mWeechat, "print", weechat_ruby_print, -1);
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
#define PLUGIN_RC_OK_IGNORE_ALL (PLUGIN_RC_OK_IGNORE_WEECHAT \
|
||||
| PLUGIN_RC_OK_IGNORE_PLUGINS)
|
||||
/* ignore WeeChat and other plugins */
|
||||
#define PLUGIN_RC_OK_WITH_HIGHLIGHT 4 /* ok and ask for highlight */
|
||||
/* (for message handler only) */
|
||||
|
||||
#define WEECHAT_IRC_COLOR_WHITE 0
|
||||
#define WEECHAT_IRC_COLOR_BLACK 1
|
||||
|
||||
@@ -5,6 +5,8 @@ ChangeLog - 2007-03-06
|
||||
|
||||
|
||||
Version 0.2.4 (under dev!):
|
||||
* added new return code in plugin API to force highlight (for message
|
||||
handlers only)
|
||||
* fixed bug with server buffer when "look_one_server_buffer" is ON and
|
||||
server buffer is moved to any number > 1 (bug #19219)
|
||||
* fixed /help command: displays plugin help for redefined commands
|
||||
|
||||
@@ -50,7 +50,7 @@
|
||||
|
||||
|
||||
char *irc_last_command_received = NULL;
|
||||
int command_ignored;
|
||||
int command_ignored, command_force_highlight;
|
||||
|
||||
|
||||
/*
|
||||
@@ -105,6 +105,10 @@ irc_is_highlight (char *message, char *nick)
|
||||
/* empty message ? */
|
||||
if (!message || !message[0])
|
||||
return 0;
|
||||
|
||||
/* highlight asked by a plugin */
|
||||
if (command_force_highlight)
|
||||
return 1;
|
||||
|
||||
/* highlight by nickname */
|
||||
match = strstr (message, nick);
|
||||
@@ -272,6 +276,7 @@ irc_recv_command (t_irc_server *server, char *entire_line,
|
||||
cmd_name,
|
||||
NULL,
|
||||
server->name);
|
||||
command_force_highlight = 0;
|
||||
#ifdef PLUGINS
|
||||
return_code = plugin_msg_handler_exec (server->name,
|
||||
cmd_name,
|
||||
@@ -280,6 +285,12 @@ irc_recv_command (t_irc_server *server, char *entire_line,
|
||||
so we ignore this message in standard handler */
|
||||
if (return_code & PLUGIN_RC_OK_IGNORE_WEECHAT)
|
||||
command_ignored = 1;
|
||||
/* plugin asked for highlight ? */
|
||||
if (return_code & PLUGIN_RC_OK_WITH_HIGHLIGHT)
|
||||
{
|
||||
command_force_highlight = 1;
|
||||
gui_printf (NULL, "highlight!!!\n");
|
||||
}
|
||||
#endif
|
||||
pos = (dup_host) ? strchr (dup_host, '!') : NULL;
|
||||
if (pos)
|
||||
|
||||
@@ -551,6 +551,8 @@ plugin_msg_handler_exec (char *server, char *irc_command, char *irc_message)
|
||||
final_return_code = PLUGIN_RC_OK_IGNORE_WEECHAT;
|
||||
if (return_code & PLUGIN_RC_OK_IGNORE_PLUGINS)
|
||||
return final_return_code;
|
||||
if (return_code & PLUGIN_RC_OK_WITH_HIGHLIGHT)
|
||||
final_return_code = PLUGIN_RC_OK_WITH_HIGHLIGHT;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2228,6 +2228,16 @@ weechat_lua_constant_plugin_rc_ok_ignore_all (lua_State *L)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int
|
||||
weechat_lua_constant_plugin_rc_ok_with_highlight (lua_State *L)
|
||||
{
|
||||
/* make C compiler happy */
|
||||
(void) L;
|
||||
|
||||
lua_pushnumber (lua_current_interpreter, PLUGIN_RC_OK_WITH_HIGHLIGHT);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lua subroutines
|
||||
*/
|
||||
@@ -2272,6 +2282,7 @@ const struct luaL_reg weechat_lua_funcs[] = {
|
||||
{ "PLUGIN_RC_OK_IGNORE_WEECHAT", weechat_lua_constant_plugin_rc_ok_ignore_weechat },
|
||||
{ "PLUGIN_RC_OK_IGNORE_PLUGINS", weechat_lua_constant_plugin_rc_ok_ignore_plugins },
|
||||
{ "PLUGIN_RC_OK_IGNORE_ALL", weechat_lua_constant_plugin_rc_ok_ignore_all },
|
||||
{ "PLUGIN_RC_OK_WITH_HIGHLIGHT", weechat_lua_constant_plugin_rc_ok_with_highlight },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
|
||||
@@ -1940,6 +1940,7 @@ weechat_perl_xs_init (pTHX)
|
||||
newCONSTSUB (stash, "weechat::PLUGIN_RC_OK_IGNORE_WEECHAT", newSViv (PLUGIN_RC_OK_IGNORE_WEECHAT));
|
||||
newCONSTSUB (stash, "weechat::PLUGIN_RC_OK_IGNORE_PLUGINS", newSViv (PLUGIN_RC_OK_IGNORE_PLUGINS));
|
||||
newCONSTSUB (stash, "weechat::PLUGIN_RC_OK_IGNORE_ALL", newSViv (PLUGIN_RC_OK_IGNORE_ALL));
|
||||
newCONSTSUB (stash, "weechat::PLUGIN_RC_OK_WITH_HIGHLIGHT", newSViv (PLUGIN_RC_OK_WITH_HIGHLIGHT));
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@@ -2296,6 +2296,7 @@ weechat_python_load (t_weechat_plugin *plugin, char *filename)
|
||||
PyDict_SetItemString(weechat_dict, "PLUGIN_RC_OK_IGNORE_WEECHAT", PyInt_FromLong((long) PLUGIN_RC_OK_IGNORE_WEECHAT));
|
||||
PyDict_SetItemString(weechat_dict, "PLUGIN_RC_OK_IGNORE_PLUGINS", PyInt_FromLong((long) PLUGIN_RC_OK_IGNORE_PLUGINS));
|
||||
PyDict_SetItemString(weechat_dict, "PLUGIN_RC_OK_IGNORE_ALL", PyInt_FromLong((long) PLUGIN_RC_OK_IGNORE_ALL));
|
||||
PyDict_SetItemString(weechat_dict, "PLUGIN_RC_OK_WITH_HIGHLIGHT", PyInt_FromLong((long) PLUGIN_RC_OK_WITH_HIGHLIGHT));
|
||||
|
||||
weechat_outputs = Py_InitModule("weechatOutputs", weechat_python_output_funcs);
|
||||
if (weechat_outputs == NULL)
|
||||
|
||||
@@ -2607,7 +2607,8 @@ weechat_plugin_init (t_weechat_plugin *plugin)
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_KO", INT2NUM(PLUGIN_RC_KO));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_IGNORE_WEECHAT", INT2NUM(PLUGIN_RC_OK_IGNORE_WEECHAT));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_IGNORE_PLUGINS", INT2NUM(PLUGIN_RC_OK_IGNORE_PLUGINS));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_IGNORE_ALL", INT2NUM(PLUGIN_RC_OK_IGNORE_ALL));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_IGNORE_ALL", INT2NUM(PLUGIN_RC_OK_IGNORE_ALL));
|
||||
rb_define_const(ruby_mWeechat, "PLUGIN_RC_OK_WITH_HIGHLIGHT", INT2NUM(PLUGIN_RC_OK_WITH_HIGHLIGHT));
|
||||
rb_define_module_function (ruby_mWeechat, "register", weechat_ruby_register, -1);
|
||||
rb_define_module_function (ruby_mWeechat, "set_charset", weechat_ruby_set_charset, 1);
|
||||
rb_define_module_function (ruby_mWeechat, "print", weechat_ruby_print, -1);
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
#define PLUGIN_RC_OK_IGNORE_ALL (PLUGIN_RC_OK_IGNORE_WEECHAT \
|
||||
| PLUGIN_RC_OK_IGNORE_PLUGINS)
|
||||
/* ignore WeeChat and other plugins */
|
||||
#define PLUGIN_RC_OK_WITH_HIGHLIGHT 4 /* ok and ask for highlight */
|
||||
/* (for message handler only) */
|
||||
|
||||
#define WEECHAT_IRC_COLOR_WHITE 0
|
||||
#define WEECHAT_IRC_COLOR_BLACK 1
|
||||
|
||||
Reference in New Issue
Block a user