diff options
Diffstat (limited to 'glib/gmessages.c')
-rw-r--r-- | glib/gmessages.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/glib/gmessages.c b/glib/gmessages.c index e2be9ab2c..91d7a21f1 100644 --- a/glib/gmessages.c +++ b/glib/gmessages.c @@ -820,7 +820,8 @@ mklevel_prefix (gchar level_prefix[STRING_BUFFER_SIZE], strcat (level_prefix, " **"); #ifdef G_OS_WIN32 - win32_keep_fatal_message = (log_level & G_LOG_FLAG_FATAL) != 0; + if ((log_level & G_LOG_FLAG_FATAL) != 0 && !g_test_initialized ()) + win32_keep_fatal_message = TRUE; #endif return to_stdout ? 1 : 2; } @@ -954,10 +955,13 @@ g_logv (const gchar *log_domain, if ((test_level & G_LOG_FLAG_FATAL) && !masquerade_fatal) { #ifdef G_OS_WIN32 - gchar *locale_msg = g_locale_from_utf8 (fatal_msg_buf, -1, NULL, NULL, NULL); - - MessageBox (NULL, locale_msg, NULL, - MB_ICONERROR|MB_SETFOREGROUND); + if (win32_keep_fatal_message) + { + gchar *locale_msg = g_locale_from_utf8 (fatal_msg_buf, -1, NULL, NULL, NULL); + + MessageBox (NULL, locale_msg, NULL, + MB_ICONERROR|MB_SETFOREGROUND); + } if (IsDebuggerPresent () && !(test_level & G_LOG_FLAG_RECURSION)) G_BREAKPOINT (); else |