void __weak warning(const char *fmt, ...) { va_list ap; va_start(ap, fmt); __vwarning(fmt, ap); va_end(ap); }
void warning(const char *fmt, ...) { GString *str; va_list ap; int err; if (alt_warning) { va_start(ap, fmt); alt_warning(fmt, ap); va_end(ap); return; } if (!parent_window) { va_start(ap, fmt); __vwarning(fmt, ap); va_end(ap); return; } err = errno; errno = 0; str = g_string_new(""); va_start(ap, fmt); g_string_vprintf(str, fmt, ap); va_end(ap); g_string_append(str, "\n"); if (errno) { g_string_prepend(str, "\n"); g_string_prepend(str, strerror(errno)); } errno = 0; trace_dialog(GTK_WINDOW(parent_window), TRACE_GUI_WARNING, str->str); g_string_free(str, TRUE); }