1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-05 01:03:14 +02:00

irc: add indexed ban list, add completion for /unban and /unquiet (closes #597, task #11374, task #10876)

This commit is contained in:
Simmo Saan
2018-03-24 17:01:50 +01:00
committed by Sébastien Helleu
parent b2f971d4b0
commit d77e1ea499
15 changed files with 1160 additions and 20 deletions
+46
View File
@@ -31,6 +31,7 @@
#include "irc-completion.h"
#include "irc-config.h"
#include "irc-ignore.h"
#include "irc-modelist.h"
#include "irc-nick.h"
#include "irc-notify.h"
#include "irc-server.h"
@@ -420,6 +421,47 @@ irc_completion_channel_nicks_hosts_cb (const void *pointer, void *data,
return WEECHAT_RC_OK;
}
/*
* Adds modelist masks current channel to completion list.
*/
int
irc_completion_modelist_cb (const void *pointer, void *data,
const char *completion_item,
struct t_gui_buffer *buffer,
struct t_gui_completion *completion)
{
char *pos;
struct t_irc_modelist *ptr_modelist;
struct t_irc_modelist_item *ptr_item;
IRC_BUFFER_GET_SERVER_CHANNEL(buffer);
/* make C compiler happy */
(void) pointer;
(void) data;
pos = strchr (completion_item, ':');
if (pos)
pos++;
if (pos && pos[0] && ptr_channel)
{
ptr_modelist = irc_modelist_search (ptr_channel, pos[0]);
if (ptr_modelist)
{
for (ptr_item = ptr_modelist->items; ptr_item; ptr_item = ptr_item->next_item)
{
weechat_hook_completion_list_add (completion,
ptr_item->mask,
0, WEECHAT_LIST_POS_END);
}
}
}
return WEECHAT_RC_OK;
}
/*
* Adds topic of current channel to completion list.
*/
@@ -758,6 +800,10 @@ irc_completion_init ()
weechat_hook_completion ("irc_channel_nicks_hosts",
N_("nicks and hostnames of current IRC channel"),
&irc_completion_channel_nicks_hosts_cb, NULL, NULL);
weechat_hook_completion ("irc_modelist",
N_("modelist masks of current IRC channel; "
"required argument: modelist mode"),
&irc_completion_modelist_cb, NULL, NULL);
weechat_hook_completion ("irc_channel_topic",
N_("topic of current IRC channel"),
&irc_completion_channel_topic_cb, NULL, NULL);