#include <captive/macros.h>
+#include <glib/gerror.h>
G_BEGIN_DECLS
-char *capfuse_filename_to_utf8_malloc_errorchecking(const char *name);
-char *capfuse_filename_from_utf8_malloc_errorchecking(const char *name);
+char *capfuse_utf8_engine_malloc_errorchecking(const char *funcname,
+ gchar *(*func)(const gchar *opsysstring,gssize len,gsize *bytes_read,gsize *bytes_written,GError **error),
+ const char *string);
+
+#define capfuse_filename_to_utf8_malloc_errorchecking(name) \
+ capfuse_utf8_engine_malloc_errorchecking("g_filename_to_utf8",g_filename_to_utf8,(name))
+#define capfuse_filename_from_utf8_malloc_errorchecking(name) \
+ capfuse_utf8_engine_malloc_errorchecking("g_filename_from_utf8",g_filename_from_utf8,(name))
#define CAPFUSE_FILENAME_TO_UTF8_ALLOCA(name) ({ \
const char *_capfuse_filename_to_utf8_alloca_name=(name); \