]> git.draconx.ca Git - gob-dx.git/blobdiff - src/util.c
Allow building against Glib 1.x.
[gob-dx.git] / src / util.c
index 4d424402cfd651ef259f60408e37f580ed7f505f..ddf9485eb159c239333b430ccff6720abef3e23f 100644 (file)
@@ -1,6 +1,7 @@
 /* GOB C Preprocessor
  * Copyright (C) 1999-2000 the Free Software Foundation.
  * Copyright (C) 2000 Eazel, Inc.
+ * Copyright (C) 2022 Nick Bowler
  *
  * Author: George Lebl
  *
@@ -20,7 +21,7 @@
  * USA.
  */
 
-#include "config.h"
+#include <config.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
@@ -81,13 +82,17 @@ remove_sep(const char *base)
 {
        char *p;
        char *s = g_strdup(base);
+       char *q=s;
 
        /* don't eat C++ :: thingies */
        if (for_cpp && strstr (s, "::") != NULL)
                return s;
 
-       while((p = strchr(s, ':')))
-               strcpy(p, p+1);
+       for(p=(char *)base;*p;p++){
+               if (*p!=':')
+                       *q++=*p;
+       }
+       *q='\0';
        return s;
 }
 
@@ -352,7 +357,7 @@ setup_special_array(Class *c, gboolean *special_array)
 char *
 get_type (const Type *t, gboolean postfix_to_stars)
 {
-       char *s;
+       char *ret, *s;
        int i;
        int extra;
        GString *gs;
@@ -379,29 +384,51 @@ get_type (const Type *t, gboolean postfix_to_stars)
                        g_string_append_c (gs, '*');
                g_string_append_c (gs, ' ');
        }
-       
-       return g_string_free (gs, FALSE);
+       ret = gs->str;
+       g_string_free(gs, FALSE);
+       return ret;
 }
 
-char *
-gob_strup (char *str)
+#if HAVE_G_ASCII_STRCASECMP
+char *gob_strup(char *str)
 {
        char *s;
+
        for (s = str; *s; s++)
-               *s = g_ascii_toupper (*s);
+               *s = g_ascii_toupper(*s);
 
        return str;
 }
 
-char *
-gob_strdown (char *str)
+char *gob_strdown(char *str)
 {
        char *s;
+
        for (s = str; *s; s++)
-               *s = g_ascii_tolower (*s);
+               *s = g_ascii_tolower(*s);
 
        return str;
 }
+#endif
+
+char *
+gob_str_delete_quotes(char *str)
+{
+       char *p, *i;
+       p=i=str;
+       while(*p!='\0')
+       {
+               if(*p=='\"')
+               {
+                       p++;
+                       continue;
+               }
+               *i=*p;
+               p++; i++;
+       }
+       *i=*p;
+       return str;
+}
 
 char *
 make_me_type (const char *type, const char *alt)