Mercurial > ~mikael > mcabber > hg
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(×tamp)); | 333 strftime(buffer, 48, "[%H:%M:%S] ", localtime(×tamp)); |
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(×tamp)); | 359 strftime(buffer2, 23, "[%Y-%m-%d %H:%M:%S] ", localtime(×tamp)); |