27 #ifndef __G_MESSAGES_H__
28 #define __G_MESSAGES_H__
43 #define G_LOG_LEVEL_USER_SHIFT (8)
65 #define G_LOG_FATAL_MASK (G_LOG_FLAG_RECURSION | G_LOG_LEVEL_ERROR)
88 ...) G_GNUC_PRINTF (3, 4);
98 #define G_LOG_DOMAIN ((gchar*) 0)
100 #ifdef G_HAVE_ISO_VARARGS
101 #define g_error(...) g_log (G_LOG_DOMAIN, \
104 #define g_message(...) g_log (G_LOG_DOMAIN, \
105 G_LOG_LEVEL_MESSAGE, \
107 #define g_critical(...) g_log (G_LOG_DOMAIN, \
108 G_LOG_LEVEL_CRITICAL, \
110 #define g_warning(...) g_log (G_LOG_DOMAIN, \
111 G_LOG_LEVEL_WARNING, \
113 #elif defined(G_HAVE_GNUC_VARARGS)
114 #define g_error(format...) g_log (G_LOG_DOMAIN, \
117 #define g_message(format...) g_log (G_LOG_DOMAIN, \
118 G_LOG_LEVEL_MESSAGE, \
120 #define g_critical(format...) g_log (G_LOG_DOMAIN, \
121 G_LOG_LEVEL_CRITICAL, \
123 #define g_warning(format...) g_log (G_LOG_DOMAIN, \
124 G_LOG_LEVEL_WARNING, \
132 va_start (args, format);
141 va_start (args, format);
150 va_start (args, format);
159 va_start (args, format);
167 ...) G_GNUC_PRINTF (1, 2);
170 ...) G_GNUC_PRINTF (1, 2);
181 #ifdef G_DISABLE_ASSERT
183 #define g_assert(expr) G_STMT_START{ }G_STMT_END
184 #define g_assert_not_reached() G_STMT_START{ }G_STMT_END
190 #define g_assert(expr) G_STMT_START{ \
192 g_log (G_LOG_DOMAIN, \
194 "file %s: line %d (%s): assertion failed: (%s)", \
197 __PRETTY_FUNCTION__, \
200 #define g_assert_not_reached() G_STMT_START{ \
201 g_log (G_LOG_DOMAIN, \
203 "file %s: line %d (%s): should not be reached", \
206 __PRETTY_FUNCTION__); }G_STMT_END
210 #define g_assert(expr) G_STMT_START{ \
212 g_log (G_LOG_DOMAIN, \
214 "file %s: line %d: assertion failed: (%s)", \
219 #define g_assert_not_reached() G_STMT_START{ \
220 g_log (G_LOG_DOMAIN, \
222 "file %s: line %d: should not be reached", \
224 __LINE__); }G_STMT_END
231 #ifdef G_DISABLE_CHECKS
233 #define g_return_if_fail(expr) G_STMT_START{ }G_STMT_END
234 #define g_return_val_if_fail(expr,val) G_STMT_START{ }G_STMT_END
235 #define g_return_if_reached() G_STMT_START{ return; }G_STMT_END
236 #define g_return_val_if_reached(val) G_STMT_START{ return (val); }G_STMT_END
242 #define g_return_if_fail(expr) G_STMT_START{ \
245 g_log (G_LOG_DOMAIN, \
246 G_LOG_LEVEL_CRITICAL, \
247 "file %s: line %d (%s): assertion `%s' failed", \
250 __PRETTY_FUNCTION__, \
255 #define g_return_val_if_fail(expr,val) G_STMT_START{ \
258 g_log (G_LOG_DOMAIN, \
259 G_LOG_LEVEL_CRITICAL, \
260 "file %s: line %d (%s): assertion `%s' failed", \
263 __PRETTY_FUNCTION__, \
268 #define g_return_if_reached() G_STMT_START{ \
269 g_log (G_LOG_DOMAIN, \
270 G_LOG_LEVEL_CRITICAL, \
271 "file %s: line %d (%s): should not be reached", \
274 __PRETTY_FUNCTION__); \
277 #define g_return_val_if_reached(val) G_STMT_START{ \
278 g_log (G_LOG_DOMAIN, \
279 G_LOG_LEVEL_CRITICAL, \
280 "file %s: line %d (%s): should not be reached", \
283 __PRETTY_FUNCTION__); \
284 return (val); }G_STMT_END
288 #define g_return_if_fail(expr) G_STMT_START{ \
291 g_log (G_LOG_DOMAIN, \
292 G_LOG_LEVEL_CRITICAL, \
293 "file %s: line %d: assertion `%s' failed", \
300 #define g_return_val_if_fail(expr, val) G_STMT_START{ \
303 g_log (G_LOG_DOMAIN, \
304 G_LOG_LEVEL_CRITICAL, \
305 "file %s: line %d: assertion `%s' failed", \
312 #define g_return_if_reached() G_STMT_START{ \
313 g_log (G_LOG_DOMAIN, \
314 G_LOG_LEVEL_CRITICAL, \
315 "file %s: line %d: should not be reached", \
320 #define g_return_val_if_reached(val) G_STMT_START{ \
321 g_log (G_LOG_DOMAIN, \
322 G_LOG_LEVEL_CRITICAL, \
323 "file %s: line %d: should not be reached", \
326 return (val); }G_STMT_END
void g_log_default_handler(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer unused_data)
void void g_logv(const gchar *log_domain, GLogLevelFlags log_level, const gchar *format, va_list args)
void g_printerr(const gchar *format,...) G_GNUC_PRINTF(1
void(* GPrintFunc)(const gchar *string)
G_BEGIN_DECLS typedef char gchar
static void g_critical(const gchar *format,...)
static void g_message(const gchar *format,...)
void g_log(const gchar *log_domain, GLogLevelFlags log_level, const gchar *format,...) G_GNUC_PRINTF(3
GLogLevelFlags g_log_set_fatal_mask(const gchar *log_domain, GLogLevelFlags fatal_mask)
static void g_error(const gchar *format,...)
GLIB_VAR const gchar * g_log_domain_glib
void GPrintFunc g_set_print_handler(GPrintFunc func)
void GPrintFunc g_set_printerr_handler(GPrintFunc func)
void(* GLogFunc)(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
GLogLevelFlags g_log_set_always_fatal(GLogLevelFlags fatal_mask)
guint g_log_set_handler(const gchar *log_domain, GLogLevelFlags log_levels, GLogFunc log_func, gpointer user_data)
void g_print(const gchar *format,...) G_GNUC_PRINTF(1
typedef void((*Func_t)())
static void g_warning(const gchar *format,...)
void g_log_remove_handler(const gchar *log_domain, guint handler_id)
G_BEGIN_DECLS gsize g_printf_string_upper_bound(const gchar *format, va_list args)