/* GOB C Preprocessor
* Copyright (C) 1999-2000 the Free Software Foundation.
* Copyright (C) 2000 Eazel, Inc.
+ * Copyright (C) 2022 Nick Bowler
*
* Author: George Lebl
*
#ifndef UTIL_H
#define UTIL_H
+#include <glib.h>
+
+struct _Class;
+struct _Type;
+
enum {
GOB_WARN,
GOB_ERROR
/* replace the : separator from a typename with a different character*/
char * replace_sep(const char *base, char r);
-char * gob_strup (char *s);
-char * gob_strdown (char *s);
-char * gob_str_delete_quotes(char *str);
+#if !HAVE_G_STRING_APPEND_PRINTF
+# define g_string_append_printf g_string_sprintfa
+# define g_string_printf g_string_sprintf
+#endif
+
+char *gob_strup(char *s);
+char *gob_strdown(char *s);
+
+#if HAVE_G_ASCII_STRCASECMP
+static inline int gob_strcasecmp(const char *s1, const char *s2)
+{
+ return g_ascii_strcasecmp(s1, s2);
+}
+#else
int gob_strcasecmp(const char *s1, const char *s2);
+#endif
+
+char * gob_str_delete_quotes(char *str);
/*separate the namespace part and then replace rest of
separators with r*/
char * make_pre_macro(const char *base,const char *pre);
/* get a name usable for a cast from a GObject (without G_TYPE_)*/
-const char * get_cast (const char *type, gboolean simple_only);
-Type * get_tree_type (const char *type, gboolean simple_only);
-char * get_type (const Type *t, gboolean postfix_to_stars);
+const char *get_cast(const char *type, gboolean simple_only);
+struct _Type *get_tree_type(const char *type, gboolean simple_only);
+char *get_type(const struct _Type *t, gboolean postfix_to_stars);
enum {
SPECIAL_2POINTER,
SPECIAL_INT_POINTER,
SPECIAL_LAST
};
+
/* returns TRUE if there are any special types at all */
-gboolean setup_special_array(Class *c, gboolean *special_array);
+gboolean setup_special_array(struct _Class *c, gboolean *special_array);
char * make_me_type (const char *type, const char *alt);