first semi-usefull nickname completion

Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
Chris Michael 2015-02-12 15:25:21 -05:00
parent 361ad048fa
commit b7088bb4fa
1 changed files with 29 additions and 16 deletions

View File

@ -261,38 +261,51 @@ _cb_entry_key_down(void *data, Evas *evas EINA_UNUSED, Evas_Object *obj EINA_UNU
{
Channel *chl;
const char *usr, *str;
Eina_List *l;
Eina_Strbuf *sb;
char *s;
Eina_List *l, *m = NULL;
chl = data;
str = elm_entry_entry_get(chl->o_entry);
if ((!str) || (strlen(str) < 1)) return;
sb = eina_strbuf_new();
EINA_LIST_FOREACH(chl->userlist.users, l, usr)
{
if (_util_str_has_prefix(usr, str))
m = eina_list_append(m, usr);
}
if (eina_list_count(m) > 1)
{
Eina_Strbuf *sb;
char *s;
sb = eina_strbuf_new();
EINA_LIST_FOREACH(m, l, usr)
{
eina_strbuf_append_length(sb, usr, strlen(usr));
eina_strbuf_append_char(sb, ' ');
}
}
if (eina_strbuf_length_get(sb) < 1)
{
if (eina_strbuf_length_get(sb) < 1)
{
eina_strbuf_free(sb);
return;
}
eina_strbuf_append_char(sb, '\r');
eina_strbuf_append_char(sb, '\n');
s = eina_strbuf_string_steal(sb);
eina_strbuf_free(sb);
return;
_channel_text_append(chl, "*", s);
}
else
{
elm_entry_entry_set(chl->o_entry, eina_list_data_get(m));
elm_entry_entry_append(chl->o_entry, ": ");
elm_entry_cursor_end_set(chl->o_entry);
}
eina_strbuf_append_char(sb, '\r');
eina_strbuf_append_char(sb, '\n');
s = eina_strbuf_string_steal(sb);
eina_strbuf_free(sb);
_channel_text_append(chl, "*", s);
}
}