diff --git a/docs/reference/glib/glib-sections.txt b/docs/reference/glib/glib-sections.txt index 9613a5f64..c44219fb3 100644 --- a/docs/reference/glib/glib-sections.txt +++ b/docs/reference/glib/glib-sections.txt @@ -1072,6 +1072,7 @@ g_message g_warning g_critical g_error +g_info g_debug diff --git a/glib/gmessages.c b/glib/gmessages.c index 26018cd77..2965d28a2 100644 --- a/glib/gmessages.c +++ b/glib/gmessages.c @@ -146,7 +146,7 @@ * and g_return_val_if_fail(). * @G_LOG_LEVEL_WARNING: log level for warnings, see g_warning() * @G_LOG_LEVEL_MESSAGE: log level for messages, see g_message() - * @G_LOG_LEVEL_INFO: log level for informational messages + * @G_LOG_LEVEL_INFO: log level for informational messages, see g_info() * @G_LOG_LEVEL_DEBUG: log level for debug messages, see g_debug() * @G_LOG_LEVEL_MASK: a mask including all log levels * @@ -224,6 +224,23 @@ * */ +/** + * g_info: + * @...: format string, followed by parameters to insert + * into the format string (as with printf()) + * + * A convenience function/macro to log an informational message. Seldom used. + * + * If g_log_default_handler() is used as the log handler function, a new-line + * character will automatically be appended to @..., and need not be entered + * manually. + * + * Such messages are suppressed by the g_log_default_handler() unless + * the G_MESSAGES_DEBUG environment variable is set appropriately. + * + * Since: 2.40 + */ + /** * g_debug: * @...: format string, followed by parameters to insert @@ -235,6 +252,9 @@ * character will automatically be appended to @..., and need not be entered * manually. * + * Such messages are suppressed by the g_log_default_handler() unless + * the G_MESSAGES_DEBUG environment variable is set appropriately. + * * Since: 2.6 */ diff --git a/glib/gmessages.h b/glib/gmessages.h index 811a69574..d58fd8a5e 100644 --- a/glib/gmessages.h +++ b/glib/gmessages.h @@ -164,6 +164,9 @@ void g_assert_warning (const char *log_domain, #define g_warning(...) g_log (G_LOG_DOMAIN, \ G_LOG_LEVEL_WARNING, \ __VA_ARGS__) +#define g_info(...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_INFO, \ + __VA_ARGS__) #define g_debug(...) g_log (G_LOG_DOMAIN, \ G_LOG_LEVEL_DEBUG, \ __VA_ARGS__) @@ -184,6 +187,9 @@ void g_assert_warning (const char *log_domain, #define g_warning(format...) g_log (G_LOG_DOMAIN, \ G_LOG_LEVEL_WARNING, \ format) +#define g_info(format...) g_log (G_LOG_DOMAIN, \ + G_LOG_LEVEL_INFO, \ + format) #define g_debug(format...) g_log (G_LOG_DOMAIN, \ G_LOG_LEVEL_DEBUG, \ format) @@ -230,6 +236,15 @@ g_warning (const gchar *format, va_end (args); } static void +g_info (const gchar *format, + ...) +{ + va_list args; + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format, args); + va_end (args); +} +static void g_debug (const gchar *format, ...) { diff --git a/glib/tests/protocol.c b/glib/tests/protocol.c index 28e29f9e3..cf5e9fdc2 100644 --- a/glib/tests/protocol.c +++ b/glib/tests/protocol.c @@ -43,11 +43,8 @@ debug (void) static void info (void) { -#ifdef g_info -#error "rewrite this to use g_info()" -#endif if (g_test_subprocess ()) - g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, "this is a regular g_log(..., G_LOG_LEVEL_INFO, ...) from the test suite"); + g_info ("this is a regular g_info from the test suite"); } static void