Implemented /tox delete command.
This commit is contained in:
parent
2f057a380f
commit
1f6a0b1e7d
@ -592,18 +592,29 @@ tox_weechat_cmd_tox(void *data, struct t_gui_buffer *buffer,
|
||||
struct t_tox_weechat_identity *identity;
|
||||
if ((identity = tox_weechat_identity_name_search(name)))
|
||||
{
|
||||
if (strcmp(flag, "-keepdata") == 0)
|
||||
if (argc == 4 && strcmp(flag, "-keepdata") == 0)
|
||||
{
|
||||
tox_weechat_identity_delete(identity, false);
|
||||
else if (strcmp(flag, "-yes") == 0)
|
||||
}
|
||||
else if (argc == 4 && strcmp(flag, "-yes") == 0)
|
||||
{
|
||||
tox_weechat_identity_delete(identity, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
weechat_printf(NULL,
|
||||
"%s%s: You must confirm deletion with either "
|
||||
"\"-keepdata\" or \"-yes\" (see /help tox)",
|
||||
weechat_prefix("error"),
|
||||
weechat_plugin->name);
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
weechat_printf(NULL,
|
||||
"%s%s: Identity \"%s\" has been deleted.",
|
||||
weechat_prefix("error"),
|
||||
weechat_plugin->name,
|
||||
name);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -612,9 +623,9 @@ tox_weechat_cmd_tox(void *data, struct t_gui_buffer *buffer,
|
||||
weechat_prefix("error"),
|
||||
weechat_plugin->name,
|
||||
identity->name);
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
|
||||
else if (argc == 3 && (weechat_strcasecmp(argv[1], "connect") == 0))
|
||||
|
@ -222,9 +222,12 @@ tox_weechat_identity_connect(struct t_tox_weechat_identity *identity)
|
||||
return;
|
||||
|
||||
// create main buffer
|
||||
identity->buffer = weechat_buffer_new(identity->name,
|
||||
NULL, NULL,
|
||||
tox_weechat_identity_buffer_close_callback, identity);
|
||||
if (identity->buffer == NULL)
|
||||
{
|
||||
identity->buffer = weechat_buffer_new(identity->name,
|
||||
NULL, NULL,
|
||||
tox_weechat_identity_buffer_close_callback, identity);
|
||||
}
|
||||
|
||||
// create Tox
|
||||
identity->tox = tox_new(NULL);
|
||||
@ -372,6 +375,13 @@ tox_weechat_identity_free(struct t_tox_weechat_identity *identity)
|
||||
// disconnect
|
||||
tox_weechat_identity_disconnect(identity);
|
||||
|
||||
// close buffer
|
||||
if (identity->buffer)
|
||||
{
|
||||
weechat_buffer_set_pointer(identity->buffer, "close_callback", NULL);
|
||||
weechat_buffer_close(identity->buffer);
|
||||
}
|
||||
|
||||
// remove from list
|
||||
if (identity == tox_weechat_last_identity)
|
||||
tox_weechat_last_identity = identity->prev_identity;
|
||||
|
Loading…
Reference in New Issue
Block a user