Update to match WeeChat 1.5 plugin API.
This commit is contained in:
parent
5e30b18d50
commit
174f00eccd
@ -19,9 +19,9 @@ future.
|
||||
- [ ] Audio/video
|
||||
|
||||
## Installation
|
||||
Tox-WeeChat requires [WeeChat][2] >= 1.0.1 and the latest-ish [toxcore][4].
|
||||
It also requires CMake to be built. Installation is fairly simple; after
|
||||
getting the source, compile and install using CMake:
|
||||
Tox-WeeChat requires [WeeChat][2] >= 1.5 and the latest-ish [toxcore][4]. It
|
||||
also requires CMake to be built. Installation is fairly simple; after getting
|
||||
the source, compile and install using CMake:
|
||||
|
||||
$ mkdir build && cd build
|
||||
$ cmake -DPLUGIN_PATH=~/.weechat/plugins ..
|
||||
|
@ -36,11 +36,13 @@ const char *twc_tag_sent_message = "tox_sent";
|
||||
const char *twc_tag_received_message = "tox_received";
|
||||
|
||||
int
|
||||
twc_chat_buffer_input_callback(void *data,
|
||||
twc_chat_buffer_input_callback(const void *pointer,
|
||||
void *data,
|
||||
struct t_gui_buffer *weechat_buffer,
|
||||
const char *input_data);
|
||||
int
|
||||
twc_chat_buffer_close_callback(void *data,
|
||||
twc_chat_buffer_close_callback(const void *pointer,
|
||||
void *data,
|
||||
struct t_gui_buffer *weechat_buffer);
|
||||
|
||||
/**
|
||||
@ -80,8 +82,8 @@ twc_chat_new(struct t_twc_profile *profile, const char *name)
|
||||
char *full_name = malloc(full_name_size);
|
||||
snprintf(full_name, full_name_size, "%s/%s", profile->name, name);
|
||||
chat->buffer = weechat_buffer_new(full_name,
|
||||
twc_chat_buffer_input_callback, chat,
|
||||
twc_chat_buffer_close_callback, chat);
|
||||
twc_chat_buffer_input_callback, chat, NULL,
|
||||
twc_chat_buffer_close_callback, chat, NULL);
|
||||
free(full_name);
|
||||
|
||||
if (!(chat->buffer))
|
||||
@ -150,7 +152,7 @@ twc_chat_new_group(struct t_twc_profile *profile, int32_t group_number)
|
||||
* Refresh a chat. Updates buffer short_name and title.
|
||||
*/
|
||||
void
|
||||
twc_chat_refresh(struct t_twc_chat *chat)
|
||||
twc_chat_refresh(const struct t_twc_chat *chat)
|
||||
{
|
||||
char *name = NULL;
|
||||
char *title = NULL;
|
||||
@ -186,9 +188,9 @@ twc_chat_refresh(struct t_twc_chat *chat)
|
||||
* Callback for twc_chat_queue_refresh. Simply calls twc_chat_refresh.
|
||||
*/
|
||||
int
|
||||
twc_chat_refresh_timer_callback(void *data, int remaining)
|
||||
twc_chat_refresh_timer_callback(const void *pointer, void *data, int remaining)
|
||||
{
|
||||
twc_chat_refresh(data);
|
||||
twc_chat_refresh(pointer);
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
@ -201,7 +203,7 @@ void
|
||||
twc_chat_queue_refresh(struct t_twc_chat *chat)
|
||||
{
|
||||
weechat_hook_timer(1, 0, 1,
|
||||
twc_chat_refresh_timer_callback, chat);
|
||||
twc_chat_refresh_timer_callback, chat, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -328,10 +330,12 @@ twc_chat_send_message(struct t_twc_chat *chat, const char *message,
|
||||
* Callback for a buffer receiving user input.
|
||||
*/
|
||||
int
|
||||
twc_chat_buffer_input_callback(void *data, struct t_gui_buffer *weechat_buffer,
|
||||
twc_chat_buffer_input_callback(const void *pointer, void *data,
|
||||
struct t_gui_buffer *weechat_buffer,
|
||||
const char *input_data)
|
||||
{
|
||||
struct t_twc_chat *chat = data;
|
||||
/* TODO: don't strip the const */
|
||||
struct t_twc_chat *chat = (void *)pointer;
|
||||
twc_chat_send_message(chat, input_data, TWC_MESSAGE_TYPE_MESSAGE);
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
@ -341,9 +345,11 @@ twc_chat_buffer_input_callback(void *data, struct t_gui_buffer *weechat_buffer,
|
||||
* Callback for a buffer being closed.
|
||||
*/
|
||||
int
|
||||
twc_chat_buffer_close_callback(void *data, struct t_gui_buffer *weechat_buffer)
|
||||
twc_chat_buffer_close_callback(const void *pointer, void *data,
|
||||
struct t_gui_buffer *weechat_buffer)
|
||||
{
|
||||
struct t_twc_chat *chat = data;
|
||||
/* TODO: don't strip the const */
|
||||
struct t_twc_chat *chat = (void *)pointer;
|
||||
|
||||
if (chat->profile->tox && chat->group_number >= 0)
|
||||
{
|
||||
|
@ -188,7 +188,7 @@ twc_match_friend(struct t_twc_profile *profile, const char *search_string)
|
||||
* Command /bootstrap callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_bootstrap(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_bootstrap(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
struct t_twc_profile *profile = twc_profile_search_buffer(buffer);
|
||||
@ -219,7 +219,7 @@ twc_cmd_bootstrap(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /friend callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_friend(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_friend(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
struct t_twc_profile *profile = twc_profile_search_buffer(buffer);
|
||||
@ -526,7 +526,7 @@ twc_cmd_friend(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /group callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_group(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_group(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
struct t_twc_profile *profile = twc_profile_search_buffer(buffer);
|
||||
@ -616,7 +616,7 @@ twc_cmd_group(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /invite callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_invite(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_invite(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
if (argc == 1)
|
||||
@ -654,7 +654,7 @@ twc_cmd_invite(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /me callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_me(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_me(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
if (argc == 1)
|
||||
@ -672,7 +672,7 @@ twc_cmd_me(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /msg callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_msg(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_msg(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
if (argc == 1)
|
||||
@ -719,7 +719,7 @@ twc_cmd_msg(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /myid callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_myid(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_myid(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
struct t_twc_profile *profile = twc_profile_search_buffer(buffer);
|
||||
@ -744,7 +744,7 @@ twc_cmd_myid(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /name callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_name(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_name(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
if (argc == 1)
|
||||
@ -804,7 +804,7 @@ twc_cmd_name(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /nospam callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_nospam(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_nospam(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
if (argc > 2)
|
||||
@ -852,7 +852,7 @@ twc_cmd_nospam(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /part callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_part(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_part(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
struct t_twc_chat *chat = twc_chat_search_buffer(buffer);
|
||||
@ -886,7 +886,7 @@ twc_cmd_part(void *data, struct t_gui_buffer *buffer,
|
||||
* Save Tox profile data when /save is executed.
|
||||
*/
|
||||
int
|
||||
twc_cmd_save(void *data, struct t_gui_buffer *buffer, const char *command)
|
||||
twc_cmd_save(const void *pointer, void *data, struct t_gui_buffer *buffer, const char *command)
|
||||
{
|
||||
size_t index;
|
||||
struct t_twc_list_item *item;
|
||||
@ -915,7 +915,7 @@ twc_cmd_save(void *data, struct t_gui_buffer *buffer, const char *command)
|
||||
* Command /status callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_status(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_status(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
if (argc != 2)
|
||||
@ -945,7 +945,7 @@ twc_cmd_status(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /statusmsg callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_statusmsg(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_statusmsg(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
struct t_twc_profile *profile = twc_profile_search_buffer(buffer);
|
||||
@ -986,7 +986,7 @@ twc_cmd_statusmsg(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /topic callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_topic(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_topic(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
if (argc == 1)
|
||||
@ -1025,7 +1025,7 @@ twc_cmd_topic(void *data, struct t_gui_buffer *buffer,
|
||||
* Command /tox callback.
|
||||
*/
|
||||
int
|
||||
twc_cmd_tox(void *data, struct t_gui_buffer *buffer,
|
||||
twc_cmd_tox(const void *pointer, void *data, struct t_gui_buffer *buffer,
|
||||
int argc, char **argv, char **argv_eol)
|
||||
{
|
||||
// /tox [list]
|
||||
@ -1158,7 +1158,7 @@ twc_commands_init()
|
||||
"address: internet address of node to bootstrap with\n"
|
||||
" port: port of the node\n"
|
||||
" Tox ID: Tox ID of the node",
|
||||
"connect", twc_cmd_bootstrap, NULL);
|
||||
"connect", twc_cmd_bootstrap, NULL, NULL);
|
||||
|
||||
weechat_hook_command("friend",
|
||||
"manage friends",
|
||||
@ -1179,7 +1179,7 @@ twc_commands_init()
|
||||
" || requests"
|
||||
" || accept"
|
||||
" || decline",
|
||||
twc_cmd_friend, NULL);
|
||||
twc_cmd_friend, NULL, NULL);
|
||||
|
||||
weechat_hook_command("group",
|
||||
"manage group chats",
|
||||
@ -1194,20 +1194,20 @@ twc_commands_init()
|
||||
"create"
|
||||
" || invites"
|
||||
" || join",
|
||||
twc_cmd_group, NULL);
|
||||
twc_cmd_group, NULL, NULL);
|
||||
|
||||
weechat_hook_command("invite",
|
||||
"invite someone to a group chat",
|
||||
"<number>|<name>|<Tox ID>",
|
||||
"number, name, Tox ID: friend to message\n",
|
||||
"%(tox_friend_name)|%(tox_friend_tox_id)",
|
||||
twc_cmd_invite, NULL);
|
||||
twc_cmd_invite, NULL, NULL);
|
||||
|
||||
weechat_hook_command("me",
|
||||
"send an action to the current chat",
|
||||
"<message>",
|
||||
"message: message to send",
|
||||
NULL, twc_cmd_me, NULL);
|
||||
NULL, twc_cmd_me, NULL, NULL);
|
||||
|
||||
weechat_hook_command("msg",
|
||||
"send a message to a Tox friend",
|
||||
@ -1215,18 +1215,18 @@ twc_commands_init()
|
||||
"number, name, Tox ID: friend to message\n"
|
||||
"message: message to send",
|
||||
"%(tox_friend_name)|%(tox_friend_tox_id)",
|
||||
twc_cmd_msg, NULL);
|
||||
twc_cmd_msg, NULL, NULL);
|
||||
|
||||
weechat_hook_command("myid",
|
||||
"get your Tox ID to give to friends",
|
||||
"", "",
|
||||
NULL, twc_cmd_myid, NULL);
|
||||
NULL, twc_cmd_myid, NULL, NULL);
|
||||
|
||||
weechat_hook_command("name",
|
||||
"change your Tox name",
|
||||
"<name>",
|
||||
"name: your new name",
|
||||
NULL, twc_cmd_name, NULL);
|
||||
NULL, twc_cmd_name, NULL, NULL);
|
||||
|
||||
weechat_hook_command("nospam",
|
||||
"change nospam value",
|
||||
@ -1235,32 +1235,32 @@ twc_commands_init()
|
||||
"new value is used\n\n"
|
||||
"Warning: changing your nospam value will alter your "
|
||||
"Tox ID!",
|
||||
NULL, twc_cmd_nospam, NULL);
|
||||
NULL, twc_cmd_nospam, NULL, NULL);
|
||||
|
||||
weechat_hook_command("part",
|
||||
"leave a group chat",
|
||||
"", "",
|
||||
NULL, twc_cmd_part, NULL);
|
||||
NULL, twc_cmd_part, NULL, NULL);
|
||||
|
||||
weechat_hook_command_run("/save", twc_cmd_save, NULL);
|
||||
weechat_hook_command_run("/save", twc_cmd_save, NULL, NULL);
|
||||
|
||||
weechat_hook_command("status",
|
||||
"change your Tox status",
|
||||
"online|busy|away",
|
||||
"",
|
||||
NULL, twc_cmd_status, NULL);
|
||||
NULL, twc_cmd_status, NULL, NULL);
|
||||
|
||||
weechat_hook_command("statusmsg",
|
||||
"change your Tox status message",
|
||||
"[<message>]",
|
||||
"message: your new status message",
|
||||
NULL, twc_cmd_statusmsg, NULL);
|
||||
NULL, twc_cmd_statusmsg, NULL, NULL);
|
||||
|
||||
weechat_hook_command("topic",
|
||||
"set a group chat topic",
|
||||
"<topic>",
|
||||
"topic: new group chat topic",
|
||||
NULL, twc_cmd_topic, NULL);
|
||||
NULL, twc_cmd_topic, NULL, NULL);
|
||||
|
||||
weechat_hook_command("tox",
|
||||
"manage Tox profiles",
|
||||
@ -1284,6 +1284,6 @@ twc_commands_init()
|
||||
" || load %(tox_unloaded_profiles)|%*"
|
||||
" || unload %(tox_loaded_profiles)|%*"
|
||||
" || reload %(tox_loaded_profiles)|%*",
|
||||
twc_cmd_tox, NULL);
|
||||
twc_cmd_tox, NULL, NULL);
|
||||
}
|
||||
|
||||
|
@ -46,12 +46,12 @@ enum
|
||||
* Complete a friends name and/or Tox ID.
|
||||
*/
|
||||
int
|
||||
twc_completion_friend(void *data,
|
||||
twc_completion_friend(const void *pointer, void *data,
|
||||
const char *completion_item,
|
||||
struct t_gui_buffer *buffer,
|
||||
struct t_gui_completion *completion)
|
||||
{
|
||||
int flags = (int)(intptr_t)data;
|
||||
int flags = (int)(intptr_t)pointer;
|
||||
struct t_twc_profile *profile = twc_profile_search_buffer(buffer);
|
||||
|
||||
if (!profile)
|
||||
@ -108,12 +108,12 @@ twc_completion_friend(void *data,
|
||||
* Complete a profile name, possibly filtering by loaded/unloaded profiles.
|
||||
*/
|
||||
int
|
||||
twc_completion_profile(void *data,
|
||||
twc_completion_profile(const void *pointer, void *data,
|
||||
const char *completion_item,
|
||||
struct t_gui_buffer *buffer,
|
||||
struct t_gui_completion *completion)
|
||||
{
|
||||
int flag = (int)(intptr_t)data;
|
||||
int flag = (int)(intptr_t)pointer;
|
||||
|
||||
size_t index;
|
||||
struct t_twc_list_item *item;
|
||||
@ -137,18 +137,18 @@ twc_completion_init()
|
||||
{
|
||||
weechat_hook_completion("tox_profiles", "profile",
|
||||
twc_completion_profile,
|
||||
(void *)(intptr_t)TWC_ALL_PROFILES);
|
||||
(void *)(intptr_t)TWC_ALL_PROFILES, NULL);
|
||||
weechat_hook_completion("tox_loaded_profiles", "loaded profile",
|
||||
twc_completion_profile,
|
||||
(void *)(intptr_t)TWC_LOADED_PROFILES);
|
||||
(void *)(intptr_t)TWC_LOADED_PROFILES, NULL);
|
||||
weechat_hook_completion("tox_unloaded_profiles", "unloaded profile",
|
||||
twc_completion_profile,
|
||||
(void *)(intptr_t)TWC_UNLOADED_PROFILES);
|
||||
(void *)(intptr_t)TWC_UNLOADED_PROFILES, NULL);
|
||||
weechat_hook_completion("tox_friend_tox_id", "friend Tox ID",
|
||||
twc_completion_friend,
|
||||
(void *)(intptr_t)TWC_COMPLETE_FRIEND_ID);
|
||||
(void *)(intptr_t)TWC_COMPLETE_FRIEND_ID, NULL);
|
||||
weechat_hook_completion("tox_friend_name", "friend name",
|
||||
twc_completion_friend,
|
||||
(void *)(intptr_t)TWC_COMPLETE_FRIEND_NAME);
|
||||
(void *)(intptr_t)TWC_COMPLETE_FRIEND_NAME, NULL);
|
||||
}
|
||||
|
||||
|
@ -70,7 +70,7 @@ twc_config_profile_option_search(const char *option_name)
|
||||
* Called when a profile option is read.
|
||||
*/
|
||||
int
|
||||
twc_config_profile_read_callback(void *data,
|
||||
twc_config_profile_read_callback(const void *pointer, void *data,
|
||||
struct t_config_file *config_file,
|
||||
struct t_config_section *section,
|
||||
const char *option_name,
|
||||
@ -132,7 +132,7 @@ twc_config_profile_read_callback(void *data,
|
||||
* Callback for checking an option value being set.
|
||||
*/
|
||||
int
|
||||
twc_config_check_value_callback(void *data,
|
||||
twc_config_check_value_callback(const void *pointer, void *data,
|
||||
struct t_config_option *option,
|
||||
const char *value)
|
||||
{
|
||||
@ -149,11 +149,11 @@ twc_config_check_value_callback(void *data,
|
||||
* Callback for checking an option value being set for a profile.
|
||||
*/
|
||||
int
|
||||
twc_config_profile_check_value_callback(void *data,
|
||||
twc_config_profile_check_value_callback(const void *pointer, void *data,
|
||||
struct t_config_option *option,
|
||||
const char *value)
|
||||
{
|
||||
enum t_twc_profile_option option_index = (intptr_t)data;
|
||||
enum t_twc_profile_option option_index = (intptr_t)pointer;
|
||||
|
||||
switch (option_index)
|
||||
{
|
||||
@ -168,7 +168,7 @@ twc_config_profile_check_value_callback(void *data,
|
||||
* Callback for option being changed for a profile.
|
||||
*/
|
||||
void
|
||||
twc_config_profile_change_callback(void *data,
|
||||
twc_config_profile_change_callback(const void *pointer, void *data,
|
||||
struct t_config_option *option)
|
||||
{
|
||||
}
|
||||
@ -256,9 +256,11 @@ twc_config_init_option(struct t_config_section *section,
|
||||
twc_config_file, section,
|
||||
option_name, type, description, string_values, min, max,
|
||||
default_value, value, null_allowed,
|
||||
twc_config_profile_check_value_callback, (void *)(intptr_t)option_index,
|
||||
twc_config_profile_change_callback, (void *)(intptr_t)option_index,
|
||||
NULL, NULL);
|
||||
twc_config_profile_check_value_callback,
|
||||
(void *)(intptr_t)option_index, NULL,
|
||||
twc_config_profile_change_callback,
|
||||
(void *)(intptr_t)option_index, NULL,
|
||||
NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -267,25 +269,26 @@ twc_config_init_option(struct t_config_section *section,
|
||||
void
|
||||
twc_config_init()
|
||||
{
|
||||
twc_config_file = weechat_config_new("tox", NULL, NULL);
|
||||
twc_config_file = weechat_config_new("tox", NULL, NULL, NULL);
|
||||
|
||||
twc_config_section_profile =
|
||||
weechat_config_new_section(twc_config_file, "profile",
|
||||
0, 0,
|
||||
twc_config_profile_read_callback, NULL,
|
||||
twc_config_profile_read_callback,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
NULL, NULL);
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
twc_config_section_profile_default =
|
||||
weechat_config_new_section(twc_config_file, "profile_default",
|
||||
0, 0,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
NULL, NULL);
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
for (int i = 0; i < TWC_PROFILE_NUM_OPTIONS; ++i)
|
||||
{
|
||||
@ -297,11 +300,11 @@ twc_config_init()
|
||||
twc_config_section_look =
|
||||
weechat_config_new_section(twc_config_file, "look",
|
||||
0, 0,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
NULL, NULL,
|
||||
NULL, NULL);
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL,
|
||||
NULL, NULL, NULL);
|
||||
|
||||
twc_config_friend_request_message = weechat_config_new_option(
|
||||
twc_config_file, twc_config_section_look,
|
||||
@ -309,16 +312,16 @@ twc_config_init()
|
||||
"message sent with friend requests if no other message is specified",
|
||||
NULL, 0, 0,
|
||||
"Hi! Please add me on Tox!", NULL, 0,
|
||||
twc_config_check_value_callback, NULL,
|
||||
NULL, NULL, NULL, NULL);
|
||||
twc_config_check_value_callback, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
twc_config_short_id_size = weechat_config_new_option(
|
||||
twc_config_file, twc_config_section_look,
|
||||
"short_id_size", "integer",
|
||||
"length of Tox IDs shown in short format; must be a multiple of two",
|
||||
NULL, 2, TOX_PUBLIC_KEY_SIZE * 2,
|
||||
"8", NULL, 0,
|
||||
twc_config_check_value_callback, NULL,
|
||||
NULL, NULL, NULL, NULL);
|
||||
twc_config_check_value_callback, NULL, NULL,
|
||||
NULL, NULL, NULL, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "twc-gui.h"
|
||||
|
||||
char *
|
||||
twc_bar_item_away(void *data,
|
||||
twc_bar_item_away(const void *pointer, void *data,
|
||||
struct t_gui_bar_item *item,
|
||||
struct t_gui_window *window,
|
||||
struct t_gui_buffer *buffer,
|
||||
@ -58,7 +58,7 @@ twc_bar_item_away(void *data,
|
||||
}
|
||||
|
||||
char *
|
||||
twc_bar_item_input_prompt(void *data,
|
||||
twc_bar_item_input_prompt(const void *pointer, void *data,
|
||||
struct t_gui_bar_item *item,
|
||||
struct t_gui_window *window,
|
||||
struct t_gui_buffer *buffer,
|
||||
@ -73,7 +73,8 @@ twc_bar_item_input_prompt(void *data,
|
||||
}
|
||||
|
||||
char *
|
||||
twc_bar_item_buffer_plugin(void *data, struct t_gui_bar_item *item,
|
||||
twc_bar_item_buffer_plugin(const void *pointer, void *data,
|
||||
struct t_gui_bar_item *item,
|
||||
struct t_gui_window *window,
|
||||
struct t_gui_buffer *buffer,
|
||||
struct t_hashtable *extra_info)
|
||||
@ -104,8 +105,8 @@ twc_bar_item_buffer_plugin(void *data, struct t_gui_bar_item *item,
|
||||
|
||||
void twc_gui_init()
|
||||
{
|
||||
weechat_bar_item_new("away", twc_bar_item_away, NULL);
|
||||
weechat_bar_item_new("input_prompt", twc_bar_item_input_prompt, NULL);
|
||||
weechat_bar_item_new("buffer_plugin", twc_bar_item_buffer_plugin, NULL);
|
||||
weechat_bar_item_new("away", twc_bar_item_away, NULL, NULL);
|
||||
weechat_bar_item_new("input_prompt", twc_bar_item_input_prompt, NULL, NULL);
|
||||
weechat_bar_item_new("buffer_plugin", twc_bar_item_buffer_plugin, NULL, NULL);
|
||||
}
|
||||
|
||||
|
@ -90,18 +90,17 @@ twc_profile_save_data_file(struct t_twc_profile *profile)
|
||||
|
||||
#ifdef TOXENCRYPTSAVE_ENABLED
|
||||
uint8_t enc_data[size + TOX_PASS_ENCRYPTION_EXTRA_LENGTH];
|
||||
char *pw = weechat_config_string(profile->options[TWC_PROFILE_OPTION_PASSPHRASE]);
|
||||
const char *pw
|
||||
= weechat_config_string(profile->options[TWC_PROFILE_OPTION_PASSPHRASE]);
|
||||
|
||||
if (pw)
|
||||
{
|
||||
pw = weechat_string_eval_expression(pw, NULL, NULL, NULL);
|
||||
if (!tox_pass_encrypt(data, size, (uint8_t *)pw, strlen(pw), enc_data, NULL))
|
||||
{
|
||||
free(pw);
|
||||
weechat_printf(profile->buffer, "error encrypting data");
|
||||
return -1;
|
||||
}
|
||||
free(pw);
|
||||
d = enc_data;
|
||||
size += TOX_PASS_ENCRYPTION_EXTRA_LENGTH;
|
||||
}
|
||||
@ -124,7 +123,7 @@ twc_profile_save_data_file(struct t_twc_profile *profile)
|
||||
* Callback when a profile's main buffer is closed. Unloads the profile.
|
||||
*/
|
||||
int
|
||||
twc_profile_buffer_close_callback(void *data,
|
||||
twc_profile_buffer_close_callback(const void *pointer, void *data,
|
||||
struct t_gui_buffer *buffer)
|
||||
{
|
||||
struct t_twc_profile *profile = data;
|
||||
@ -281,8 +280,9 @@ twc_profile_load(struct t_twc_profile *profile)
|
||||
{
|
||||
// create main buffer
|
||||
profile->buffer = weechat_buffer_new(profile->name,
|
||||
NULL, NULL,
|
||||
twc_profile_buffer_close_callback, profile);
|
||||
NULL, NULL, NULL,
|
||||
twc_profile_buffer_close_callback,
|
||||
profile, NULL);
|
||||
if (!(profile->buffer))
|
||||
return TWC_RC_ERROR;
|
||||
}
|
||||
@ -344,23 +344,18 @@ twc_profile_load(struct t_twc_profile *profile)
|
||||
|
||||
if (data_size && tox_is_data_encrypted(data))
|
||||
{
|
||||
char *pw = weechat_config_string(profile->options[TWC_PROFILE_OPTION_PASSPHRASE]);
|
||||
const char *pw = weechat_config_string(profile->options[TWC_PROFILE_OPTION_PASSPHRASE]);
|
||||
|
||||
if (pw)
|
||||
{
|
||||
// evaluate password option and duplicate as tox_*_decrypt wipes it
|
||||
pw = weechat_string_eval_expression(pw, NULL, NULL, NULL);
|
||||
}
|
||||
|
||||
if (pw)
|
||||
{
|
||||
if (!tox_pass_decrypt(data, data_size, (uint8_t *)pw, strlen(pw), dec_data, NULL))
|
||||
{
|
||||
free(pw);
|
||||
weechat_printf(profile->buffer, "%scould not decrypt Tox data file, aborting",
|
||||
weechat_prefix("error"));
|
||||
return TWC_RC_ERROR;
|
||||
}
|
||||
free(pw);
|
||||
data_size -= TOX_PASS_ENCRYPTION_EXTRA_LENGTH;
|
||||
}
|
||||
options.savedata_data = dec_data;
|
||||
@ -414,7 +409,7 @@ twc_profile_load(struct t_twc_profile *profile)
|
||||
twc_bootstrap_random_node(profile->tox);
|
||||
|
||||
// start tox_iterate loop
|
||||
twc_do_timer_cb(profile, 0);
|
||||
twc_do_timer_cb(profile, NULL, 0);
|
||||
|
||||
// register Tox callbacks
|
||||
tox_callback_friend_message(profile->tox, twc_friend_message_callback, profile);
|
||||
|
@ -33,14 +33,15 @@
|
||||
#include "twc-tox-callbacks.h"
|
||||
|
||||
int
|
||||
twc_do_timer_cb(void *data,
|
||||
twc_do_timer_cb(const void *pointer, void *data,
|
||||
int remaining_calls)
|
||||
{
|
||||
struct t_twc_profile *profile = data;
|
||||
/* TODO: don't strip the const */
|
||||
struct t_twc_profile *profile = (void *)pointer;
|
||||
|
||||
tox_iterate(profile->tox);
|
||||
struct t_hook *hook = weechat_hook_timer(tox_iteration_interval(profile->tox),
|
||||
0, 1, twc_do_timer_cb, profile);
|
||||
0, 1, twc_do_timer_cb, profile, NULL);
|
||||
profile->tox_do_timer = hook;
|
||||
|
||||
// check connection status
|
||||
|
@ -23,7 +23,7 @@
|
||||
#include <tox/tox.h>
|
||||
|
||||
int
|
||||
twc_do_timer_cb(void *data,
|
||||
twc_do_timer_cb(const void *pointer, void *data,
|
||||
int remaining_calls);
|
||||
|
||||
void
|
||||
|
Loading…
Reference in New Issue
Block a user