From 7c9a1f50da19191209b7f908bc553c98dacb1e47 Mon Sep 17 00:00:00 2001
From: Přemysl Janouch
Date: Sun, 10 May 2015 00:23:23 +0200
Subject: 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 **
--
cgit v1.2.3-70-g09d2