X-Git-Url: https://harrygodden.com/git/?p=csRadar.git;a=blobdiff_plain;f=vdf.h;h=fb242d13cd71239d34519ce583e9c2cf05cf0292;hp=2b77a7a4f3bf65fc87aa0b7c54bc7978d8e1a782;hb=8382aed7f0cdc38bc5c58832d4a15277cf56d4be;hpb=0399aad1d7374badf037a2696d9e276d71b7a297 diff --git a/vdf.h b/vdf.h index 2b77a7a..fb242d1 100644 --- 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 ) \ -int __vdf_it_##__LINE__ = 0; \ +int __vdf_it_##AS = 0; \ 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 ) \ -int __kv_it_##__LINE__ = 0; \ +int __kv_it_##AS = 0; \ const char * AS;\ -while( (AS = kv_iter( NODE, STR, &__kv_it_##__LINE__ )) ) +while( (AS = kv_iter( NODE, STR, &__kv_it_##AS )) ) -#include -#include -#include -#include // TYPES // ================================================================================================================== @@ -63,6 +67,7 @@ void kv_double_array( vdf_node *node, const char *key, u32 count, double *arr ); // INTERNAL API // ================================================================================================================== +#ifdef VALVE_IMPLEMENTATION // 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 ); +#endif + // IMPLEMENTATION // ================================================================================================================== @@ -105,8 +112,11 @@ struct vdf_node vdf_kv *pairs; u32 user; + u32 user1; }; +#ifdef VALVE_IMPLEMENTATION + 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 ) ) { - 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; } @@ -433,7 +443,7 @@ int vdf_parse_structure( vdf_ctx *ctx ) { 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 ++; } @@ -449,7 +459,7 @@ int vdf_parse_structure( vdf_ctx *ctx ) { 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 @@ -470,7 +480,7 @@ void vdf_parse_begin_token( vdf_ctx *ctx, char *ptr ) 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 ++; } } @@ -542,7 +552,6 @@ int vdf_load_into( const char *fn, vdf_node *node ) if( !text_src ) { - fprintf( stderr, "vdf open failed\n" ); return 0; } @@ -616,3 +625,5 @@ void vdf_print( vdf_node *node ) { vdf_out( node, -1, 0, stdout ); } + +#endif