race condition with development tools..
[vg.git] / vg_platform.h
index b22f989ee608af389956056ca3c433357e389d96..e8b288e9731afd4034d922ff010a5ed3e4054700 100644 (file)
@@ -44,6 +44,9 @@ struct vg_achievement
 #include <math.h>
 #include <stdio.h>
 #include <errno.h>
+#include <stdlib.h>
+
+#include "vg_string.h"
 
 enum strncpy_behaviour{
    k_strncpy_always_add_null = 0,
@@ -74,72 +77,6 @@ static u32 vg_strncpy( const char *src, char *dst, u32 len,
    return 0;
 }
 
-typedef struct vg_str vg_str;
-struct vg_str{
-   char *buffer;
-   i32 i, len;
-};
-
-static void vg_strnull( vg_str *str, char *buffer, i32 len ){
-   str->buffer = buffer;
-   str->buffer[0] = '\0';
-   str->i = 0;
-   str->len = len;
-
-   assert(len);
-}
-
-static void vg_strcat( vg_str *str, const char *append ){
-   if( !append ) return;
-   if( str->i == -1 ) return;
-
-   for( u32 i=0; str->i < str->len; str->i ++, i ++ ){
-      str->buffer[ str->i ] = append[ i ];
-
-      if( append[ i ] == '\0' )
-         return;
-   }
-
-   /* overflow */
-   str->buffer[ str->i ] = '\0';
-   str->i = -1;
-}
-
-static void vg_strcati32( vg_str *str, i32 value ){
-   if( value ){
-      char temp[32];
-      int i=0;
-      while( value && (i<31) ){
-         temp[ i ++ ] = '0' + (value % 10);
-         value /= 10;
-      }
-
-      char reverse[32];
-      for( int j=0; j<i; j ++ )
-         reverse[j] = temp[ i-1-j ];
-      reverse[i] = '\0';
-
-      vg_strcat( str, reverse );
-   }
-   else
-      vg_strcat( str, "0" );
-}
-
-static int vg_strgood( vg_str *str ){
-   if( str->i == -1 ) return 0;
-   else return 1;
-}
-
-static char *vg_strch( vg_str *str, char c ){
-   char *ptr = NULL;
-   for( i32 i=0; i<str->i; i++ ){
-      if( str->buffer[i] == c )
-         ptr = str->buffer+i;
-   }
-
-   return ptr;
-}
-
 static u32 vg_strdjb2( const char *str ){
    u32 hash = 5381, c;