From 68eb63e0c68594262b48e77a4ecf69c2603cea62 Mon Sep 17 00:00:00 2001 From: "Dirk-Jan C. Binnema" Date: Fri, 15 Jul 2011 23:50:37 +0300 Subject: [PATCH] * mu-guile-common.[ch]: add support for showing GErrors --- libmuguile/mu-guile-common.c | 11 +++++++++++ libmuguile/mu-guile-common.h | 18 +++++++++++------- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/libmuguile/mu-guile-common.c b/libmuguile/mu-guile-common.c index 32e35c78..1f3a658c 100644 --- a/libmuguile/mu-guile-common.c +++ b/libmuguile/mu-guile-common.c @@ -28,3 +28,14 @@ mu_guile_error (const char *func_name, int status, scm_from_utf8_string (fmt), args, scm_list_1 (scm_from_int (status))); } + + + +void +mu_guile_g_error (const char *func_name, GError *err) +{ + scm_error_scm (scm_from_locale_symbol ("MuError"), + scm_from_utf8_string (func_name), + scm_from_utf8_string (err->message), + SCM_UNDEFINED, SCM_UNDEFINED); +} diff --git a/libmuguile/mu-guile-common.h b/libmuguile/mu-guile-common.h index 699d0af2..c14ba084 100644 --- a/libmuguile/mu-guile-common.h +++ b/libmuguile/mu-guile-common.h @@ -21,11 +21,9 @@ #define __MU_GUILE_UTILS_H__ #include +#include - -#ifdef __cplusplus -extern "C" { -#endif /*__cplusplus*/ +G_BEGIN_DECLS /** * @@ -38,10 +36,16 @@ extern "C" { void mu_guile_error (const char *func_name, int status, const char *fmt, SCM args); -#ifdef __cplusplus -} -#endif /*__cplusplus*/ +/** + * display a GError as a Guile error + * + * @param func_name function name + * @param err Gerror + */ +void mu_guile_g_error (const char *func_name, GError *err); + +G_END_DECLS #endif /*__MU_GUILE_UTILS_H__*/