app: port gimp-log to also work with latest GLib
This commit is contained in:
@ -23,6 +23,30 @@
|
|||||||
#include "gimp-log.h"
|
#include "gimp-log.h"
|
||||||
|
|
||||||
|
|
||||||
|
static const GDebugKey log_keys[] =
|
||||||
|
{
|
||||||
|
{ "tool-events", GIMP_LOG_TOOL_EVENTS },
|
||||||
|
{ "tool-focus", GIMP_LOG_TOOL_FOCUS },
|
||||||
|
{ "dnd", GIMP_LOG_DND },
|
||||||
|
{ "help", GIMP_LOG_HELP },
|
||||||
|
{ "dialog-factory", GIMP_LOG_DIALOG_FACTORY },
|
||||||
|
{ "menus", GIMP_LOG_MENUS },
|
||||||
|
{ "save-dialog", GIMP_LOG_SAVE_DIALOG },
|
||||||
|
{ "image-scale", GIMP_LOG_IMAGE_SCALE },
|
||||||
|
{ "shadow-tiles", GIMP_LOG_SHADOW_TILES },
|
||||||
|
{ "scale", GIMP_LOG_SCALE },
|
||||||
|
{ "wm", GIMP_LOG_WM },
|
||||||
|
{ "floating-selection", GIMP_LOG_FLOATING_SELECTION },
|
||||||
|
{ "shm", GIMP_LOG_SHM },
|
||||||
|
{ "text-editing", GIMP_LOG_TEXT_EDITING },
|
||||||
|
{ "key-events", GIMP_LOG_KEY_EVENTS },
|
||||||
|
{ "auto-tab-style", GIMP_LOG_AUTO_TAB_STYLE },
|
||||||
|
{ "instances", GIMP_LOG_INSTANCES },
|
||||||
|
{ "rectangle-tool", GIMP_LOG_RECTANGLE_TOOL },
|
||||||
|
{ "brush-cache", GIMP_LOG_BRUSH_CACHE }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
GimpLogFlags gimp_log_flags = 0;
|
GimpLogFlags gimp_log_flags = 0;
|
||||||
|
|
||||||
|
|
||||||
@ -35,30 +59,10 @@ gimp_log_init (void)
|
|||||||
env_log_val = g_getenv ("GIMP_DEBUG");
|
env_log_val = g_getenv ("GIMP_DEBUG");
|
||||||
|
|
||||||
if (env_log_val)
|
if (env_log_val)
|
||||||
{
|
g_setenv ("G_MESSAGES_DEBUG", env_log_val, TRUE);
|
||||||
const GDebugKey log_keys[] =
|
|
||||||
{
|
|
||||||
{ "tool-events", GIMP_LOG_TOOL_EVENTS },
|
|
||||||
{ "tool-focus", GIMP_LOG_TOOL_FOCUS },
|
|
||||||
{ "dnd", GIMP_LOG_DND },
|
|
||||||
{ "help", GIMP_LOG_HELP },
|
|
||||||
{ "dialog-factory", GIMP_LOG_DIALOG_FACTORY },
|
|
||||||
{ "menus", GIMP_LOG_MENUS },
|
|
||||||
{ "save-dialog", GIMP_LOG_SAVE_DIALOG },
|
|
||||||
{ "image-scale", GIMP_LOG_IMAGE_SCALE },
|
|
||||||
{ "shadow-tiles", GIMP_LOG_SHADOW_TILES },
|
|
||||||
{ "scale", GIMP_LOG_SCALE },
|
|
||||||
{ "wm", GIMP_LOG_WM },
|
|
||||||
{ "floating-selection", GIMP_LOG_FLOATING_SELECTION },
|
|
||||||
{ "shm", GIMP_LOG_SHM },
|
|
||||||
{ "text-editing", GIMP_LOG_TEXT_EDITING },
|
|
||||||
{ "key-events", GIMP_LOG_KEY_EVENTS },
|
|
||||||
{ "auto-tab-style", GIMP_LOG_AUTO_TAB_STYLE },
|
|
||||||
{ "instances", GIMP_LOG_INSTANCES },
|
|
||||||
{ "rectangle-tool", GIMP_LOG_RECTANGLE_TOOL },
|
|
||||||
{ "brush-cache", GIMP_LOG_BRUSH_CACHE }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
if (env_log_val)
|
||||||
|
{
|
||||||
/* g_parse_debug_string() has special treatment of the string 'help',
|
/* g_parse_debug_string() has special treatment of the string 'help',
|
||||||
* but we want to use it for the GIMP_LOG_HELP domain
|
* but we want to use it for the GIMP_LOG_HELP domain
|
||||||
*/
|
*/
|
||||||
@ -75,27 +79,36 @@ gimp_log_init (void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gimp_log (const gchar *function,
|
gimp_log (GimpLogFlags flags,
|
||||||
gint line,
|
const gchar *function,
|
||||||
const gchar *domain,
|
gint line,
|
||||||
const gchar *format,
|
const gchar *format,
|
||||||
...)
|
...)
|
||||||
{
|
{
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
va_start (args, format);
|
va_start (args, format);
|
||||||
gimp_logv (function, line, domain, format, args);
|
gimp_logv (flags, function, line, format, args);
|
||||||
va_end (args);
|
va_end (args);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
gimp_logv (const gchar *function,
|
gimp_logv (GimpLogFlags flags,
|
||||||
gint line,
|
const gchar *function,
|
||||||
const gchar *domain,
|
gint line,
|
||||||
const gchar *format,
|
const gchar *format,
|
||||||
va_list args)
|
va_list args)
|
||||||
{
|
{
|
||||||
gchar *message;
|
const gchar *domain = "unknown";
|
||||||
|
gchar *message;
|
||||||
|
gint i;
|
||||||
|
|
||||||
|
for (i = 0; i < G_N_ELEMENTS (log_keys); i++)
|
||||||
|
if (log_keys[i].value == flags)
|
||||||
|
{
|
||||||
|
domain = log_keys[i].key;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (format)
|
if (format)
|
||||||
message = g_strdup_vprintf (format, args);
|
message = g_strdup_vprintf (format, args);
|
||||||
|
@ -47,16 +47,16 @@ extern GimpLogFlags gimp_log_flags;
|
|||||||
|
|
||||||
|
|
||||||
void gimp_log_init (void);
|
void gimp_log_init (void);
|
||||||
void gimp_log (const gchar *function,
|
void gimp_log (GimpLogFlags flags,
|
||||||
gint line,
|
const gchar *function,
|
||||||
const gchar *domain,
|
gint line,
|
||||||
const gchar *format,
|
const gchar *format,
|
||||||
...) G_GNUC_PRINTF (4, 5);
|
...) G_GNUC_PRINTF (4, 5);
|
||||||
void gimp_logv (const gchar *function,
|
void gimp_logv (GimpLogFlags flags,
|
||||||
gint line,
|
const gchar *function,
|
||||||
const gchar *domain,
|
gint line,
|
||||||
const gchar *format,
|
const gchar *format,
|
||||||
va_list args);
|
va_list args);
|
||||||
|
|
||||||
|
|
||||||
#ifdef G_HAVE_ISO_VARARGS
|
#ifdef G_HAVE_ISO_VARARGS
|
||||||
@ -64,7 +64,7 @@ void gimp_logv (const gchar *function,
|
|||||||
#define GIMP_LOG(type, ...) \
|
#define GIMP_LOG(type, ...) \
|
||||||
G_STMT_START { \
|
G_STMT_START { \
|
||||||
if (gimp_log_flags & GIMP_LOG_##type) \
|
if (gimp_log_flags & GIMP_LOG_##type) \
|
||||||
gimp_log (G_STRFUNC, __LINE__, #type, __VA_ARGS__); \
|
gimp_log (GIMP_LOG_##type, G_STRFUNC, __LINE__, __VA_ARGS__); \
|
||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
|
|
||||||
#elif defined(G_HAVE_GNUC_VARARGS)
|
#elif defined(G_HAVE_GNUC_VARARGS)
|
||||||
@ -72,7 +72,7 @@ void gimp_logv (const gchar *function,
|
|||||||
#define GIMP_LOG(type, format...) \
|
#define GIMP_LOG(type, format...) \
|
||||||
G_STMT_START { \
|
G_STMT_START { \
|
||||||
if (gimp_log_flags & GIMP_LOG_##type) \
|
if (gimp_log_flags & GIMP_LOG_##type) \
|
||||||
gimp_log (G_STRFUNC, __LINE__, #type, format); \
|
gimp_log (GIMP_LOG_##type, G_STRFUNC, __LINE__, format); \
|
||||||
} G_STMT_END
|
} G_STMT_END
|
||||||
|
|
||||||
#else /* no varargs macros */
|
#else /* no varargs macros */
|
||||||
@ -112,7 +112,7 @@ GIMP_LOG (GimpLogFlags flags,
|
|||||||
va_list args;
|
va_list args;
|
||||||
va_start (args, format);
|
va_start (args, format);
|
||||||
if (gimp_log_flags & flags)
|
if (gimp_log_flags & flags)
|
||||||
gimp_logv ("", 0, "", format, args);
|
gimp_logv (type, "", 0, format, args);
|
||||||
va_end (args);
|
va_end (args);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user