mirror of
https://github.com/moparisthebest/hexchat
synced 2024-11-25 18:52:22 -05:00
Added functions to create/destroy event_attrs to plugin interface.
Function names were chosen to keep consistency with the rest of the API.
This commit is contained in:
parent
e0fb3d537d
commit
18eaccb840
@ -182,6 +182,9 @@ struct _hexchat_plugin
|
|||||||
void *userdata);
|
void *userdata);
|
||||||
int (*hexchat_emit_print_attrs) (hexchat_plugin *ph, hexchat_event_attrs *attrs,
|
int (*hexchat_emit_print_attrs) (hexchat_plugin *ph, hexchat_event_attrs *attrs,
|
||||||
const char *event_name, ...);
|
const char *event_name, ...);
|
||||||
|
hexchat_event_attrs *(*hexchat_event_attrs_create) (hexchat_plugin *ph);
|
||||||
|
void (*hexchat_event_attrs_free) (hexchat_plugin *ph,
|
||||||
|
hexchat_event_attrs *attrs);
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -194,6 +197,10 @@ hexchat_hook_command (hexchat_plugin *ph,
|
|||||||
const char *help_text,
|
const char *help_text,
|
||||||
void *userdata);
|
void *userdata);
|
||||||
|
|
||||||
|
hexchat_event_attrs *hexchat_event_attrs_create (hexchat_plugin *ph);
|
||||||
|
|
||||||
|
void hexchat_event_attrs_free (hexchat_plugin *ph, hexchat_event_attrs *attrs);
|
||||||
|
|
||||||
hexchat_hook *
|
hexchat_hook *
|
||||||
hexchat_hook_server (hexchat_plugin *ph,
|
hexchat_hook_server (hexchat_plugin *ph,
|
||||||
const char *name,
|
const char *name,
|
||||||
@ -201,7 +208,6 @@ hexchat_hook_server (hexchat_plugin *ph,
|
|||||||
int (*callback) (char *word[], char *word_eol[], void *user_data),
|
int (*callback) (char *word[], char *word_eol[], void *user_data),
|
||||||
void *userdata);
|
void *userdata);
|
||||||
|
|
||||||
|
|
||||||
hexchat_hook *
|
hexchat_hook *
|
||||||
hexchat_hook_server_attrs (hexchat_plugin *ph,
|
hexchat_hook_server_attrs (hexchat_plugin *ph,
|
||||||
const char *name,
|
const char *name,
|
||||||
@ -389,6 +395,8 @@ hexchat_pluginpref_list (hexchat_plugin *ph,
|
|||||||
#define HEXCHAT_PLUGIN_HANDLE (ph)
|
#define HEXCHAT_PLUGIN_HANDLE (ph)
|
||||||
#endif
|
#endif
|
||||||
#define hexchat_hook_command ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_command)
|
#define hexchat_hook_command ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_command)
|
||||||
|
#define hexchat_event_attrs_create ((HEXCHAT_PLUGIN_HANDLE)->hexchat_event_attrs_create)
|
||||||
|
#define hexchat_event_attrs_free ((HEXCHAT_PLUGIN_HANDLE)->hexchat_event_attrs_free)
|
||||||
#define hexchat_hook_server ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_server)
|
#define hexchat_hook_server ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_server)
|
||||||
#define hexchat_hook_server_attrs ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_server_attrs)
|
#define hexchat_hook_server_attrs ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_server_attrs)
|
||||||
#define hexchat_hook_print ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_print)
|
#define hexchat_hook_print ((HEXCHAT_PLUGIN_HANDLE)->hexchat_hook_print)
|
||||||
|
@ -296,9 +296,8 @@ plugin_add (session *sess, char *filename, void *handle, void *init_func,
|
|||||||
pl->hexchat_hook_server_attrs = hexchat_hook_server_attrs;
|
pl->hexchat_hook_server_attrs = hexchat_hook_server_attrs;
|
||||||
pl->hexchat_hook_print_attrs = hexchat_hook_print_attrs;
|
pl->hexchat_hook_print_attrs = hexchat_hook_print_attrs;
|
||||||
pl->hexchat_emit_print_attrs = hexchat_emit_print_attrs;
|
pl->hexchat_emit_print_attrs = hexchat_emit_print_attrs;
|
||||||
|
pl->hexchat_event_attrs_create = hexchat_event_attrs_create;
|
||||||
/* incase new plugins are loaded on older HexChat */
|
pl->hexchat_event_attrs_free = hexchat_event_attrs_free;
|
||||||
pl->hexchat_dummy1 = hexchat_dummy;
|
|
||||||
|
|
||||||
/* run hexchat_plugin_init, if it returns 0, close the plugin */
|
/* run hexchat_plugin_init, if it returns 0, close the plugin */
|
||||||
if (((hexchat_init_func *)init_func) (pl, &pl->name, &pl->desc, &pl->version, arg) == 0)
|
if (((hexchat_init_func *)init_func) (pl, &pl->name, &pl->desc, &pl->version, arg) == 0)
|
||||||
@ -620,8 +619,28 @@ plugin_emit_command (session *sess, char *name, char *word[], char *word_eol[])
|
|||||||
return plugin_hook_run (sess, name, word, word_eol, NULL, HOOK_COMMAND);
|
return plugin_hook_run (sess, name, word, word_eol, NULL, HOOK_COMMAND);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* got a server PRIVMSG, NOTICE, numeric etc... */
|
hexchat_event_attrs *
|
||||||
|
hexchat_event_attrs_create (hexchat_plugin *ph)
|
||||||
|
{
|
||||||
|
hexchat_event_attrs *attrs;
|
||||||
|
|
||||||
|
attrs = malloc (sizeof (*attrs));
|
||||||
|
|
||||||
|
if (attrs == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
attrs->server_time_utc = (time_t) 0;
|
||||||
|
|
||||||
|
return attrs;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
hexchat_event_attrs_free (hexchat_plugin *ph, hexchat_event_attrs *attrs)
|
||||||
|
{
|
||||||
|
g_free (attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* got a server PRIVMSG, NOTICE, numeric etc... */
|
||||||
int
|
int
|
||||||
plugin_emit_server (session *sess, char *name, char *word[], char *word_eol[])
|
plugin_emit_server (session *sess, char *name, char *word[], char *word_eol[])
|
||||||
{
|
{
|
||||||
|
@ -146,9 +146,9 @@ struct _hexchat_plugin
|
|||||||
void *userdata);
|
void *userdata);
|
||||||
int (*hexchat_emit_print_attrs) (hexchat_plugin *ph, hexchat_event_attrs *attrs,
|
int (*hexchat_emit_print_attrs) (hexchat_plugin *ph, hexchat_event_attrs *attrs,
|
||||||
const char *event_name, ...);
|
const char *event_name, ...);
|
||||||
|
hexchat_event_attrs *(*hexchat_event_attrs_create) (hexchat_plugin *ph);
|
||||||
/* If you add a new function here you should remove the dummy function bellow. */
|
void (*hexchat_event_attrs_free) (hexchat_plugin *ph,
|
||||||
void *(*hexchat_dummy1) (hexchat_plugin *ph);
|
hexchat_event_attrs *attrs);
|
||||||
|
|
||||||
/* PRIVATE FIELDS! */
|
/* PRIVATE FIELDS! */
|
||||||
void *handle; /* from dlopen */
|
void *handle; /* from dlopen */
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
EXPORTED {
|
EXPORTED {
|
||||||
global:
|
global:
|
||||||
hexchat_hook_command;
|
hexchat_hook_command;
|
||||||
|
hexchat_event_attrs_create;
|
||||||
|
hexchat_event_attrs_free;
|
||||||
hexchat_hook_server;
|
hexchat_hook_server;
|
||||||
hexchat_hook_server_attrs;
|
hexchat_hook_server_attrs;
|
||||||
hexchat_hook_print;
|
hexchat_hook_print;
|
||||||
@ -27,6 +29,7 @@ EXPORTED {
|
|||||||
hexchat_plugingui_add;
|
hexchat_plugingui_add;
|
||||||
hexchat_plugingui_remove;
|
hexchat_plugingui_remove;
|
||||||
hexchat_emit_print;
|
hexchat_emit_print;
|
||||||
|
hexchat_emit_print_attrs;
|
||||||
hexchat_list_time;
|
hexchat_list_time;
|
||||||
hexchat_gettext;
|
hexchat_gettext;
|
||||||
hexchat_send_modes;
|
hexchat_send_modes;
|
||||||
|
Loading…
Reference in New Issue
Block a user