void
error_print(int type, int line, const char *error)
{
- char *w = NULL;
+ const char *w = NULL;
switch(type) {
case GOB_WARN:
{
char *p;
char *s = g_strdup(base);
+
+ /* don't eat C++ :: thingies */
+ if (for_cpp && strstr (s, "::") != NULL)
+ return s;
+
while((p = strchr(s, ':')))
strcpy(p, p+1);
return s;
{
char *p;
char *s = g_strdup(base);
+
+ /* don't eat C++ :: thingies */
+ if (for_cpp && strstr (s, "::") != NULL)
+ return s;
+
while((p=strchr(s,':')))
*p = r;
if(*s == r) {
{
char *p;
char *s = g_strdup(base);
+
*ns = NULL;
+
+ /* don't eat C++ :: thingies */
+ if (for_cpp && strstr (s, "::") != NULL) {
+ *name = s;
+ return;
+ }
+
if((p=strchr(s,':')) && p!=s) {
*p = '\0';
*ns = g_strdup(s);
{ TRUE, "NONE", "void ", "void", NULL, -1 },
{ TRUE, "CHAR", "gchar ", "gchar", NULL, -1 },
{ TRUE, "UCHAR", "guchar ", "guchar", NULL, -1 },
+ { TRUE, "UNICHAR", "gunichar ", "gunichar", NULL, -1 },
{ TRUE, "BOOLEAN", "gboolean ", "gboolean", NULL, -1 },
{ TRUE, "INT", "gint ", "gint", NULL, -1 },
{ TRUE, "UINT", "guint ", "guint", NULL, -1 },
{ TRUE, "LONG", "glong ", "glong", NULL, -1 },
{ TRUE, "ULONG", "gulong ", "gulong", NULL, -1 },
+ { TRUE, "INT64", "gint64 ", "gint64", NULL, -1 },
+ { TRUE, "UINT64", "guint64 ", "guint64", NULL, -1 },
{ TRUE, "ENUM", /*"enum"*/"gint ", "gint", NULL, -1 },
{ TRUE, "FLAGS", /*"flags"*/"guint ", "guint", NULL, -1 },
{ TRUE, "FLOAT", "gfloat ", "gfloat", NULL, -1 },
{ TRUE, "OBJECT", "GObject *", "GObject", "*", -1 },
{ TRUE, "PARAM", "GParamSpec *", "GParamSpec", "*", -1 },
- /* FIXME: VALUE_ARRAY, CLOSURE, UNICHAR */
+ /* FIXME: VALUE_ARRAY, CLOSURE */
/* Note that those have some issues with g_value_ calls etc... so
* we can't just add them */
}
static void
-mask_special_array(char *type, gboolean *special_array, gboolean *any_special)
+mask_special_array (const char *type, gboolean *special_array, gboolean *any_special)
{
OurGtkType *gtype;
return any_special;
}
+
+char *
+get_type (const Type *t, gboolean postfix_to_stars)
+{
+ char *s;
+ int i;
+ int extra;
+ GString *gs;
+
+ s = remove_sep(t->name);
+ gs = g_string_new(s);
+ g_free(s);
+
+ extra = 0;
+ if (postfix_to_stars) {
+ const char *p;
+ /*XXX: this is ugly perhaps we can do this whole postfix thing
+ in a nicer way, we just count the number of '[' s and from
+ that we deduce the number of dimensions, so that we can print
+ that many stars */
+ for (p = t->postfix; p && *p; p++)
+ if(*p == '[') extra++;
+ }
+ g_string_append_c(gs, ' ');
+
+ if (t->pointer != NULL) {
+ g_string_append (gs, t->pointer);
+ for (i=0; i < extra; i++)
+ g_string_append_c (gs, '*');
+ g_string_append_c (gs, ' ');
+ }
+
+ return g_string_free (gs, FALSE);
+}
+