Mercurial > hg
changeset 792:89ad7b530b3c
MUC: Fix completion for UTF-8 nicknames
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Fri, 07 Apr 2006 19:58:56 +0200 |
parents | 6c9e8fb69965 |
children | 898dd706cc5c |
files | mcabber/src/compl.c mcabber/src/roster.c mcabber/src/roster.h |
diffstat | 3 files changed, 22 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/compl.c Fri Apr 07 19:40:03 2006 +0200 +++ b/mcabber/src/compl.c Fri Apr 07 19:58:56 2006 +0200 @@ -219,7 +219,7 @@ return compl_list(ROSTER_TYPE_USER); } if (cat_flags == COMPL_RESOURCE) { - return buddy_getresources(NULL); + return buddy_getresources_locale(NULL); } if (cat_flags == COMPL_EVENTSID) { return evs_geteventscomplist();
--- a/mcabber/src/roster.c Fri Apr 07 19:40:03 2006 +0200 +++ b/mcabber/src/roster.c Fri Apr 07 19:58:56 2006 +0200 @@ -1028,6 +1028,26 @@ return reslist; } +// buddy_getresources_locale(roster_data) +// Same as buddy_getresources() but names are converted to user's locale +// Note: the caller should free the list (and data) after use +GSList *buddy_getresources_locale(gpointer rosterdata) +{ + GSList *reslist, *lp; + + reslist = buddy_getresources(rosterdata); + // Convert each item to UI's locale + for (lp = reslist; lp; lp = g_slist_next(lp)) { + gchar *oldname = lp->data; + lp->data = from_utf8(oldname); + if (lp->data) + g_free(oldname); + else + lp->data = oldname; + } + return reslist; +} + /* // buddy_isresource(roster_data) // Return true if there is at least one resource
--- a/mcabber/src/roster.h Fri Apr 07 19:40:03 2006 +0200 +++ b/mcabber/src/roster.h Fri Apr 07 19:58:56 2006 +0200 @@ -125,6 +125,7 @@ gchar buddy_getresourceprio(gpointer rosterdata, const char *resname); //int buddy_isresource(gpointer rosterdata); GSList *buddy_getresources(gpointer rosterdata); +GSList *buddy_getresources_locale(gpointer rosterdata); void buddy_resource_setname(gpointer rosterdata, const char *resname, const char *newname); enum imrole buddy_getrole(gpointer rosterdata, const char *resname);