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:
committed by
Sébastien Helleu
parent
b2f971d4b0
commit
d77e1ea499
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user