degesch: add nickname autocompletion

This commit is contained in:
Přemysl Eric Janouch 2015-05-10 00:23:23 +02:00
parent 2ef7323f26
commit 7c9a1f50da
1 changed files with 16 additions and 1 deletions

View File

@ -5330,7 +5330,22 @@ static void
complete_nicknames (struct app_context *ctx, struct completion *data,
const char *word, struct str_vector *output)
{
// TODO; if (data->location == 0) --> add colons to nicknames
if (ctx->current_buffer->type != BUFFER_CHANNEL)
return;
struct channel *channel = ctx->current_buffer->channel;
// XXX: this is a bit hackish and doesn't respect server case mapping
char *mask = xstrdup_printf ("%s*", word);
LIST_FOR_EACH (struct channel_user, iter, channel->users)
{
const char *nickname = iter->user->nickname;
if (fnmatch (mask, nickname, 0))
continue;
str_vector_add_owned (output, data->location == 0
? xstrdup_printf ("%s:", nickname)
: xstrdup (nickname));
}
free (mask);
}
static char **