revision 2
[vg.git] / vg_string.c
index 1a38479e139243635011b0c272a6af081c6d6b80..1261f5b9479e79ea77b6989772bbcfaa42501194 100644 (file)
@@ -1,6 +1,8 @@
 #include "vg_string.h"
 #include "vg_platform.h"
 #include <string.h>
+#include <stdarg.h>
+#include <stdio.h>
 
 i32 vg_str_storage( vg_str *str )
 {
@@ -185,6 +187,21 @@ u32 vg_strncpy( const char *src, char *dst, u32 len,
    return 0;
 }
 
+static void _vg_strcatf_va( vg_str *str, const char *fmt, va_list args )
+{
+       char buffer[4096];
+   vsnprintf( buffer, vg_list_size(buffer), fmt, args );
+   vg_strcat( str, buffer );
+}
+
+void vg_strcatf( vg_str *str, const char *fmt, ... )
+{
+   va_list args;
+   va_start( args, fmt );
+   _vg_strcatf_va( str, fmt, args );
+   va_end( args );
+}
+
 u32 vg_strdjb2( const char *str )
 {
    u32 hash = 5381, c;