projects
/
csRadar.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vpk loading/models
[csRadar.git]
/
vdf.h
diff --git
a/vdf.h
b/vdf.h
index ddfc2d34300cc87751183c45dc64bec543439a95..2b77a7a4f3bf65fc87aa0b7c54bc7978d8e1a782 100644
(file)
--- a/
vdf.h
+++ b/
vdf.h
@@
-103,6
+103,8
@@
struct vdf_node
vdf_node **nodes;
vdf_kv *pairs;
vdf_node **nodes;
vdf_kv *pairs;
+
+ u32 user;
};
vdf_node *vdf_next( vdf_node *node, const char *name, int *it )
};
vdf_node *vdf_next( vdf_node *node, const char *name, int *it )
@@
-112,7
+114,7
@@
vdf_node *vdf_next( vdf_node *node, const char *name, int *it )
for( int i = it? *it: 0; i < csr_sb_count( node->nodes ); i ++ )
{
for( int i = it? *it: 0; i < csr_sb_count( node->nodes ); i ++ )
{
- if( !strcmp( name, node->nodes[i]->name ))
+ if( !
name || !
strcmp( name, node->nodes[i]->name ))
{
if( it ) *it = i+1;
return node->nodes[i];
{
if( it ) *it = i+1;
return node->nodes[i];
@@
-534,24
+536,38
@@
void vdf_parse_feedbuffer( vdf_ctx *ctx, char *buf )
}
}
}
}
-
vdf_node *vdf_open_file( const char *fn
)
-{
+
int vdf_load_into( const char *fn, vdf_node *node
)
+{
char *text_src = csr_textasset_read( fn );
if( !text_src )
{
fprintf( stderr, "vdf open failed\n" );
char *text_src = csr_textasset_read( fn );
if( !text_src )
{
fprintf( stderr, "vdf open failed\n" );
- return
NULL
;
+ return
0
;
}
vdf_ctx ctx = {0};
}
vdf_ctx ctx = {0};
- ctx.root = ctx.st.pnode =
vdf_create_node( NULL, NULL )
;
+ ctx.root = ctx.st.pnode =
node
;
vdf_newln( &ctx );
vdf_parse_feedbuffer( &ctx, text_src );
vdf_newln( &ctx );
vdf_parse_feedbuffer( &ctx, text_src );
-
free( text_src );
free( text_src );
- return ctx.root;
+
+ return 1;
+}
+
+vdf_node *vdf_open_file( const char *fn )
+{
+ vdf_node *root = vdf_create_node( NULL, NULL );
+ if( vdf_load_into( fn, root ) )
+ {
+ return root;
+ }
+ else
+ {
+ vdf_free_r( root );
+ return NULL;
+ }
}
// OUTPUT
}
// OUTPUT