comparison mcabber/src/screen.c @ 771:ce4f8a2129a4

scr_LogPrint() can display UTF-8 strings
author Mikael Berthe <mikael@lilotux.net>
date Sat, 25 Mar 2006 18:00:40 +0100
parents c3bb5ae65a86
children 464be13343a9
comparison
equal deleted inserted replaced
770:c3bb5ae65a86 771:ce4f8a2129a4
316 beep(); 316 beep();
317 } 317 }
318 318
319 // scr_LogPrint(...) 319 // scr_LogPrint(...)
320 // Display a message in the log window. 320 // Display a message in the log window.
321 // This function will convert from UTF-8 unless the LPRINT_NOTUTF8 flag is set.
321 void scr_LogPrint(unsigned int flag, const char *fmt, ...) 322 void scr_LogPrint(unsigned int flag, const char *fmt, ...)
322 { 323 {
323 time_t timestamp; 324 time_t timestamp;
324 char *buffer, *b2; 325 char *buffer, *b2;
325 va_list ap; 326 va_list ap;
326 327
327 if (!flag) return; 328 if (!(flag & ~LPRINT_NOTUTF8)) return; // Shouldn't happen
328 329
329 buffer = g_new(char, 5184); 330 buffer = g_new(char, 5184);
330 331
331 timestamp = time(NULL); 332 timestamp = time(NULL);
332 strftime(buffer, 48, "[%H:%M:%S] ", localtime(&timestamp)); 333 strftime(buffer, 48, "[%H:%M:%S] ", localtime(&timestamp));
335 va_start(ap, fmt); 336 va_start(ap, fmt);
336 vsnprintf(b2, 5120, fmt, ap); 337 vsnprintf(b2, 5120, fmt, ap);
337 va_end(ap); 338 va_end(ap);
338 339
339 if (flag & LPRINT_NORMAL) { 340 if (flag & LPRINT_NORMAL) {
341 char *buffer_locale;
342 if (!(flag & LPRINT_NOTUTF8))
343 buffer_locale = from_utf8(buffer);
344 else
345 buffer_locale = buffer;
340 if (Curses) { 346 if (Curses) {
341 wprintw(logWnd, "\n%s", buffer); 347 wprintw(logWnd, "\n%s", buffer_locale);
342 update_panels(); 348 update_panels();
343 doupdate(); 349 doupdate();
344 } else { 350 } else {
345 printf("%s\n", buffer); 351 printf("%s\n", buffer_locale);
346 } 352 }
353 if (!(flag & LPRINT_NOTUTF8))
354 g_free(buffer_locale);
347 } 355 }
348 if (flag & (LPRINT_LOG|LPRINT_DEBUG)) { 356 if (flag & (LPRINT_LOG|LPRINT_DEBUG)) {
349 char *buffer2 = g_new(char, 5184); 357 char *buffer2 = g_new(char, 5184);
350 358
351 strftime(buffer2, 23, "[%Y-%m-%d %H:%M:%S] ", localtime(&timestamp)); 359 strftime(buffer2, 23, "[%Y-%m-%d %H:%M:%S] ", localtime(&timestamp));