changeset 773:e25b8a348ebd

Screen updating functions use UTF-8 scr_DrawRoster(), scr_UpdateMainStatus(), scr_UpdateChatStatus() and scr_WriteInWindow() expect UTF-8 data.
author Mikael Berthe <mikael@lilotux.net>
date Sat, 25 Mar 2006 18:14:37 +0100
parents 464be13343a9
children 46304b773a44
files mcabber/src/screen.c
diffstat 1 files changed, 13 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mcabber/src/screen.c	Sat Mar 25 18:10:36 2006 +0100
+++ b/mcabber/src/screen.c	Sat Mar 25 18:14:37 2006 +0100
@@ -635,7 +635,7 @@
 // Redraw the main (bottom) status line.
 void scr_UpdateMainStatus(int forceupdate)
 {
-  const char *sm = jb_getstatusmsg();
+  char *sm = from_utf8(jb_getstatusmsg());
 
   werase(mainstatusWnd);
   mvwprintw(mainstatusWnd, 0, 0, "%c[%c] %s",
@@ -646,6 +646,7 @@
     update_panels();
     doupdate();
   }
+  g_free(sm);
 }
 
 //  scr_DrawMainWindow()
@@ -833,7 +834,7 @@
   const char *fullname;
   const char *msg = NULL;
   char status;
-  char *buf;
+  char *buf, *buf_locale;
 
   // Usually we need to update the bottom status line too,
   // at least to refresh the pending message flag.
@@ -852,7 +853,9 @@
     wprintw(chatstatusWnd, "~");
 
   if (isgrp) {
-    mvwprintw(chatstatusWnd, 0, 5, "Group: %s", fullname);
+    buf_locale = from_utf8(fullname);
+    mvwprintw(chatstatusWnd, 0, 5, "Group: %s", buf_locale);
+    g_free(buf_locale);
     if (forceupdate) {
       update_panels();
       doupdate();
@@ -887,7 +890,9 @@
 
   buf = g_strdup_printf("[%c] Buddy: %s -- %s", status, fullname, msg);
   replace_nl_with_dots(buf);
-  mvwprintw(chatstatusWnd, 0, 1, "%s", buf);
+  buf_locale = from_utf8(buf);
+  mvwprintw(chatstatusWnd, 0, 1, "%s", buf_locale);
+  g_free(buf_locale);
   g_free(buf);
 
   if (forceupdate) {
@@ -970,6 +975,7 @@
 
   for (i=0; i<maxy && buddy; buddy = g_list_next(buddy)) {
     unsigned short bflags, btype, ismsg, isgrp, ismuc, ishid;
+    gchar *rline_locale;
 
     bflags = buddy_getflags(BUDDATA(buddy));
     btype = buddy_gettype(BUDDATA(buddy));
@@ -1036,7 +1042,9 @@
       snprintf(rline, Roster_Width, " %c[%c] %s", pending, status, name);
     }
 
-    mvwprintw(rosterWnd, i, 0, "%s", rline);
+    rline_locale = from_utf8(rline);
+    mvwprintw(rosterWnd, i, 0, "%s", rline_locale);
+    g_free(rline_locale);
     i++;
   }