Mercurial > hg
changeset 1026:fc6060707022
[BP] Fixes truncating utf-8 buddy names (Myhailo Danylenko)
Backport of changesets 023891f99732 and 553b8ecf901f.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Thu, 16 Nov 2006 19:30:12 +0100 |
parents | 804aebb39028 |
children | 6d68a65b5ec6 |
files | mcabber/src/screen.c |
diffstat | 1 files changed, 4 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/screen.c Thu Nov 16 19:07:09 2006 +0100 +++ b/mcabber/src/screen.c Thu Nov 16 19:30:12 2006 +0100 @@ -1088,8 +1088,6 @@ return; } - name = g_new0(char, Roster_Width); - // Update offset if necessary // a) Try to show as many buddylist items as possible i = g_list_length(buddylist) - maxy; @@ -1101,7 +1099,6 @@ i = g_list_position(buddylist, current_buddy); if (i == -1) { // This is bad scr_LogPrint(LPRINT_NORMAL, "Doh! Can't find current selected buddy!!"); - g_free(name); curs_set(cursor_backup); return; } else if (i < offset) { @@ -1110,7 +1107,8 @@ offset = i + 1 - maxy; } - rline = g_new0(char, Roster_Width+1); + name = g_new0(char, 4*Roster_Width); + rline = g_new0(char, 4*Roster_Width+1); buddy = buddylist; rOffset = offset; @@ -1170,7 +1168,7 @@ } if (Roster_Width > 7) - strncpy(name, buddy_getname(BUDDATA(buddy)), Roster_Width-7); + g_utf8_strncpy(name, buddy_getname(BUDDATA(buddy)), Roster_Width-7); else name[0] = 0; @@ -1196,7 +1194,7 @@ } } - snprintf(rline, Roster_Width, + snprintf(rline, 4*Roster_Width, " %c%c%c%c %s", pending, sepleft, status, sepright, name); }