From 7c9a1f50da19191209b7f908bc553c98dacb1e47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Janouch?= Date: Sun, 10 May 2015 00:23:23 +0200 Subject: [PATCH] degesch: add nickname autocompletion --- degesch.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/degesch.c b/degesch.c index cfa44a6..7aa9649 100644 --- a/degesch.c +++ b/degesch.c @@ -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 **