fixed instance loading forget to append basepath.. other path fixes (windows)
[csRadar.git] / vdf.h
diff --git a/vdf.h b/vdf.h
index 2b77a7a4f3bf65fc87aa0b7c54bc7978d8e1a782..fb242d13cd71239d34519ce583e9c2cf05cf0292 100644 (file)
--- a/vdf.h
+++ b/vdf.h
@@ -1,17 +1,21 @@
+// This software is not affiliated with Valve Corporation
+//   We are not affiliated, associated, authorized, endorsed by, or in any way officially 
+//   connected with Valve Corporation, or any of its subsidiaries or its affiliates. 
+// 
+//   All trademarks are property of their respective owners
+
+// VDF aka Keyvalue text format parser / writer
+
 #define vdf_foreach( NODE, STR, AS ) \
 #define vdf_foreach( NODE, STR, AS ) \
-int __vdf_it_##__LINE__ = 0; \
+int __vdf_it_##AS = 0; \
 vdf_node * AS;\
 vdf_node * AS;\
-while( (AS = vdf_next( NODE, STR, &__vdf_it_##__LINE__ )) )
+while( (AS = vdf_next( NODE, STR, &__vdf_it_##AS )) )
 
 #define kv_foreach( NODE, STR, AS ) \
 
 #define kv_foreach( NODE, STR, AS ) \
-int __kv_it_##__LINE__ = 0; \
+int __kv_it_##AS = 0; \
 const char * AS;\
 const char * AS;\
-while( (AS = kv_iter( NODE, STR, &__kv_it_##__LINE__ )) )
+while( (AS = kv_iter( NODE, STR, &__kv_it_##AS )) )
 
 
-#include <stdio.h>
-#include <stdint.h>
-#include <string.h>
-#include <ctype.h>
 
 // TYPES
 // ==================================================================================================================
 
 // TYPES
 // ==================================================================================================================
@@ -63,6 +67,7 @@ void kv_double_array( vdf_node *node, const char *key, u32 count, double *arr );
 
 // INTERNAL API
 // ==================================================================================================================
 
 // INTERNAL API
 // ==================================================================================================================
+#ifdef VALVE_IMPLEMENTATION
 
 // Add keyvalue pair to node
 void vdf_kv_append( vdf_node *p, const char *k, const char *v );
 
 // Add keyvalue pair to node
 void vdf_kv_append( vdf_node *p, const char *k, const char *v );
@@ -86,6 +91,8 @@ void vdf_parse_feedbuffer( vdf_ctx *ctx, char *buf );
 // Formatting
 void vdf_out_indent( const int n, FILE *file );
 
 // Formatting
 void vdf_out_indent( const int n, FILE *file );
 
+#endif
+
 // IMPLEMENTATION
 // ==================================================================================================================
 
 // IMPLEMENTATION
 // ==================================================================================================================
 
@@ -105,8 +112,11 @@ struct vdf_node
        vdf_kv  *pairs;
        
        u32             user;
        vdf_kv  *pairs;
        
        u32             user;
+       u32             user1;
 };
 
 };
 
+#ifdef VALVE_IMPLEMENTATION
+
 vdf_node *vdf_next( vdf_node *node, const char *name, int *it )
 {      
        if( !node ) 
 vdf_node *vdf_next( vdf_node *node, const char *name, int *it )
 {      
        if( !node ) 
@@ -419,7 +429,7 @@ void vdf_parse_string( vdf_ctx *ctx )
                
                if( vdf_line_control( ctx ) )
                {
                
                if( vdf_line_control( ctx ) )
                {
-                       fprintf( stderr, "Unexpected end of line character (Line: %u)\n", ctx->lines );
+                       log_error( "Unexpected end of line character (Line: %u)\n", ctx->lines );
                        return;
                }
        
                        return;
                }
        
@@ -433,7 +443,7 @@ int vdf_parse_structure( vdf_ctx *ctx )
        {
                if( ctx->st.tokens[0] || !ctx->st.expect_decl )
                {
        {
                if( ctx->st.tokens[0] || !ctx->st.expect_decl )
                {
-                       fprintf( stderr, "Unexpected token '{' (Line: %u)\n", ctx->lines );
+                       log_error( "Unexpected token '{' (Line: %u)\n", ctx->lines );
                        ctx->errors ++;
                }
                
                        ctx->errors ++;
                }
                
@@ -449,7 +459,7 @@ int vdf_parse_structure( vdf_ctx *ctx )
        {
                if( !ctx->st.pnode->parent )
                {
        {
                if( !ctx->st.pnode->parent )
                {
-                       fprintf( stderr, "Unexpected token '}' (Line: %u)\n", ctx->lines );
+                       log_error( "Unexpected token '}' (Line: %u)\n", ctx->lines );
                        ctx->errors ++;
                }
                else
                        ctx->errors ++;
                }
                else
@@ -470,7 +480,7 @@ void vdf_parse_begin_token( vdf_ctx *ctx, char *ptr )
 
        if( ctx->st.expect_decl )
        {
 
        if( ctx->st.expect_decl )
        {
-               fprintf( stderr, "Unexpected token '%s' (Line: %u)\n", ctx->name, ctx->lines );
+               log_error( "Unexpected token '%s' (Line: %u)\n", ctx->name, ctx->lines );
                ctx->errors ++;
        }
 }
                ctx->errors ++;
        }
 }
@@ -542,7 +552,6 @@ int vdf_load_into( const char *fn, vdf_node *node )
        
        if( !text_src )
        {
        
        if( !text_src )
        {
-               fprintf( stderr, "vdf open failed\n" );
                return 0;
        }
        
                return 0;
        }
        
@@ -616,3 +625,5 @@ void vdf_print( vdf_node *node )
 {
        vdf_out( node, -1, 0, stdout );
 }
 {
        vdf_out( node, -1, 0, stdout );
 }
+
+#endif