Append one more argument to r3_tree_insert_pathn
This commit is contained in:
parent
64acfd8cd6
commit
08a059465e
5 changed files with 371 additions and 368 deletions
|
@ -2,6 +2,5 @@
|
||||||
arr = ["foo", "bar", "baz", "qux", "quux", "corge", "grault", "garply"]
|
arr = ["foo", "bar", "baz", "qux", "quux", "corge", "grault", "garply"]
|
||||||
paths = arr.permutation(3).map { |a| "/#{a.join '/'}" }
|
paths = arr.permutation(3).map { |a| "/#{a.join '/'}" }
|
||||||
paths.each do |path|
|
paths.each do |path|
|
||||||
# puts "r3_tree_insert_path(n, \"#{path}\", NULL);"
|
puts "r3_tree_insert_path(n, \"#{path}\", NULL, NULL);"
|
||||||
puts path
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -100,9 +100,9 @@ edge * r3_node_find_edge(node * n, char * pat);
|
||||||
|
|
||||||
void r3_tree_append_edge(node *n, edge *child);
|
void r3_tree_append_edge(node *n, edge *child);
|
||||||
|
|
||||||
node * r3_tree_insert_path(node *tree, char *route, void * data);
|
node * r3_tree_insert_path(node *tree, char *path, route * route, void * data);
|
||||||
|
|
||||||
node * r3_tree_insert_pathn(node *tree, char *route, int route_len, void * data);
|
node * r3_tree_insert_pathn(node *tree, char *path, int path_len, route * route, void * data);
|
||||||
|
|
||||||
void r3_tree_dump(node * n, int level);
|
void r3_tree_dump(node * n, int level);
|
||||||
|
|
||||||
|
|
34
src/node.c
34
src/node.c
|
@ -364,12 +364,12 @@ node * r3_node_create() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
node * r3_tree_insert_path(node *tree, char *route, void * data)
|
node * r3_tree_insert_path(node *tree, char *path, route * route, void * data)
|
||||||
{
|
{
|
||||||
return r3_tree_insert_pathn(tree, route, strlen(route) , data);
|
return r3_tree_insert_pathn(tree, path, strlen(path) , route , data);
|
||||||
}
|
}
|
||||||
|
|
||||||
node * r3_tree_insert_pathn(node *tree, char *route, int route_len, void * data)
|
node * r3_tree_insert_pathn(node *tree, char *path, int path_len, route * route, void * data)
|
||||||
{
|
{
|
||||||
node * n = tree;
|
node * n = tree;
|
||||||
edge * e = NULL;
|
edge * e = NULL;
|
||||||
|
@ -377,9 +377,9 @@ node * r3_tree_insert_pathn(node *tree, char *route, int route_len, void * data)
|
||||||
/* length of common prefix */
|
/* length of common prefix */
|
||||||
int offset = 0;
|
int offset = 0;
|
||||||
for( int i = 0 ; i < n->edge_len ; i++ ) {
|
for( int i = 0 ; i < n->edge_len ; i++ ) {
|
||||||
offset = strndiff(route, n->edges[i]->pattern, n->edges[i]->pattern_len);
|
offset = strndiff(path, n->edges[i]->pattern, n->edges[i]->pattern_len);
|
||||||
|
|
||||||
// printf("offset: %d %s vs %s\n", offset, route, n->edges[i]->pattern );
|
// printf("offset: %d %s vs %s\n", offset, path, n->edges[i]->pattern );
|
||||||
|
|
||||||
// no common, consider insert a new edge
|
// no common, consider insert a new edge
|
||||||
if ( offset > 0 ) {
|
if ( offset > 0 ) {
|
||||||
|
@ -389,34 +389,34 @@ node * r3_tree_insert_pathn(node *tree, char *route, int route_len, void * data)
|
||||||
}
|
}
|
||||||
|
|
||||||
// branch the edge at correct position (avoid broken slugs)
|
// branch the edge at correct position (avoid broken slugs)
|
||||||
char *slug_s = strchr(route, '{');
|
char *slug_s = strchr(path, '{');
|
||||||
char *slug_e = strchr(route, '}');
|
char *slug_e = strchr(path, '}');
|
||||||
if ( slug_s && slug_e ) {
|
if ( slug_s && slug_e ) {
|
||||||
if ( offset > (slug_s - route) && offset < (slug_e - route) ) {
|
if ( offset > (slug_s - path) && offset < (slug_e - path) ) {
|
||||||
// break before '{'
|
// break before '{'
|
||||||
offset = slug_s - route;
|
offset = slug_s - path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( offset == 0 ) {
|
if ( offset == 0 ) {
|
||||||
// not found, we should just insert a whole new edge
|
// not found, we should just insert a whole new edge
|
||||||
node * child = r3_tree_create(3);
|
node * child = r3_tree_create(3);
|
||||||
r3_tree_add_child(n, strndup(route, route_len) , child);
|
r3_tree_add_child(n, strndup(path, path_len) , child);
|
||||||
info("edge not found, insert one: %s\n", route);
|
info("edge not found, insert one: %s\n", path);
|
||||||
child->data = data;
|
child->data = data;
|
||||||
child->endpoint++;
|
child->endpoint++;
|
||||||
return child;
|
return child;
|
||||||
} else if ( offset == e->pattern_len ) { // fully-equal to the pattern of the edge
|
} else if ( offset == e->pattern_len ) { // fully-equal to the pattern of the edge
|
||||||
|
|
||||||
char * subroute = route + offset;
|
char * subroute = path + offset;
|
||||||
int subroute_len = route_len - offset;
|
int subroute_len = path_len - offset;
|
||||||
|
|
||||||
// there are something more we can insert
|
// there are something more we can insert
|
||||||
if ( subroute_len > 0 ) {
|
if ( subroute_len > 0 ) {
|
||||||
return r3_tree_insert_pathn(e->child, subroute, subroute_len, data);
|
return r3_tree_insert_pathn(e->child, subroute, subroute_len, route, data);
|
||||||
} else {
|
} else {
|
||||||
// no more,
|
// no more,
|
||||||
e->child->endpoint++; // make it as an endpoint, TODO: put the route value
|
e->child->endpoint++; // make it as an endpoint, TODO: put the path value
|
||||||
e->child->data = data;
|
e->child->data = data;
|
||||||
return e->child;
|
return e->child;
|
||||||
}
|
}
|
||||||
|
@ -430,14 +430,14 @@ node * r3_tree_insert_pathn(node *tree, char *route, int route_len, void * data)
|
||||||
*/
|
*/
|
||||||
node *c2; // child 1, child 2
|
node *c2; // child 1, child 2
|
||||||
edge *e2; // edge 1, edge 2
|
edge *e2; // edge 1, edge 2
|
||||||
char * s2 = route + offset;
|
char * s2 = path + offset;
|
||||||
int s2_len = 0;
|
int s2_len = 0;
|
||||||
|
|
||||||
r3_edge_branch(e, offset);
|
r3_edge_branch(e, offset);
|
||||||
|
|
||||||
// here is the new edge from.
|
// here is the new edge from.
|
||||||
c2 = r3_tree_create(3);
|
c2 = r3_tree_create(3);
|
||||||
s2_len = route_len - offset;
|
s2_len = path_len - offset;
|
||||||
e2 = r3_edge_create(strndup(s2, s2_len), s2_len, c2);
|
e2 = r3_edge_create(strndup(s2, s2_len), s2_len, c2);
|
||||||
// printf("edge right: %s\n", e2->pattern);
|
// printf("edge right: %s\n", e2->pattern);
|
||||||
r3_tree_append_edge(e->child, e2);
|
r3_tree_append_edge(e->child, e2);
|
||||||
|
|
|
@ -89,3 +89,6 @@
|
||||||
1400382244,12226293.04
|
1400382244,12226293.04
|
||||||
1400382299,11775631.24
|
1400382299,11775631.24
|
||||||
1400382382,12331702.88
|
1400382382,12331702.88
|
||||||
|
1400382578,13521992.76
|
||||||
|
1400382591,12607054.51
|
||||||
|
1400382780,12319337.31
|
||||||
|
|
|
|
@ -55,9 +55,9 @@ START_TEST (test_compile)
|
||||||
node *m;
|
node *m;
|
||||||
edge *e ;
|
edge *e ;
|
||||||
|
|
||||||
r3_tree_insert_pathn(n, "/zoo", strlen("/zoo"), NULL);
|
r3_tree_insert_pathn(n, "/zoo", strlen("/zoo"), NULL, NULL);
|
||||||
r3_tree_insert_pathn(n, "/foo", strlen("/foo"), NULL);
|
r3_tree_insert_pathn(n, "/foo", strlen("/foo"), NULL, NULL);
|
||||||
r3_tree_insert_pathn(n, "/bar", strlen("/bar"), NULL);
|
r3_tree_insert_pathn(n, "/bar", strlen("/bar"), NULL, NULL);
|
||||||
r3_tree_compile(n);
|
r3_tree_compile(n);
|
||||||
fail_if( n->combined_pattern );
|
fail_if( n->combined_pattern );
|
||||||
fail_if( NULL == r3_node_find_edge_str(n, "/", strlen("/") ) );
|
fail_if( NULL == r3_node_find_edge_str(n, "/", strlen("/") ) );
|
||||||
|
@ -66,8 +66,8 @@ START_TEST (test_compile)
|
||||||
r3_tree_dump(n, 0);
|
r3_tree_dump(n, 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
r3_tree_insert_pathn(n, "/foo/{id}", strlen("/foo/{id}"), NULL);
|
r3_tree_insert_pathn(n, "/foo/{id}", strlen("/foo/{id}"), NULL, NULL);
|
||||||
r3_tree_insert_pathn(n, "/{id}", strlen("/{id}"), NULL);
|
r3_tree_insert_pathn(n, "/{id}", strlen("/{id}"), NULL, NULL);
|
||||||
r3_tree_compile(n);
|
r3_tree_compile(n);
|
||||||
r3_tree_compile(n); // test double compile
|
r3_tree_compile(n); // test double compile
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -165,27 +165,27 @@ START_TEST (test_r3_tree_insert_pathn)
|
||||||
node * n = r3_tree_create(10);
|
node * n = r3_tree_create(10);
|
||||||
|
|
||||||
info("Inserting /foo/bar\n");
|
info("Inserting /foo/bar\n");
|
||||||
r3_tree_insert_path(n, "/foo/bar", NULL);
|
r3_tree_insert_path(n, "/foo/bar", NULL, NULL);
|
||||||
// r3_tree_dump(n, 0);
|
// r3_tree_dump(n, 0);
|
||||||
|
|
||||||
info("Inserting /foo/zoo\n");
|
info("Inserting /foo/zoo\n");
|
||||||
r3_tree_insert_path(n, "/foo/zoo", NULL);
|
r3_tree_insert_path(n, "/foo/zoo", NULL, NULL);
|
||||||
// r3_tree_dump(n, 0);
|
// r3_tree_dump(n, 0);
|
||||||
|
|
||||||
info("Inserting /f/id\n");
|
info("Inserting /f/id\n");
|
||||||
r3_tree_insert_path(n, "/f/id" , NULL);
|
r3_tree_insert_path(n, "/f/id" , NULL, NULL);
|
||||||
// r3_tree_dump(n, 0);
|
// r3_tree_dump(n, 0);
|
||||||
|
|
||||||
info("Inserting /post/{id}\n");
|
info("Inserting /post/{id}\n");
|
||||||
r3_tree_insert_pathn(n, "/post/{id}", strlen("/post/{id}"), NULL);
|
r3_tree_insert_pathn(n, "/post/{id}", strlen("/post/{id}"), NULL, NULL);
|
||||||
// r3_tree_dump(n, 0);
|
// r3_tree_dump(n, 0);
|
||||||
|
|
||||||
info("Inserting /post/{handle}\n");
|
info("Inserting /post/{handle}\n");
|
||||||
r3_tree_insert_pathn(n, "/post/{handle}", strlen("/post/{handle}"), NULL);
|
r3_tree_insert_pathn(n, "/post/{handle}", strlen("/post/{handle}"), NULL, NULL);
|
||||||
// r3_tree_dump(n, 0);
|
// r3_tree_dump(n, 0);
|
||||||
|
|
||||||
info("Inserting /post/{handle}-{id}\n");
|
info("Inserting /post/{handle}-{id}\n");
|
||||||
r3_tree_insert_pathn(n, "/post/{handle}-{id}", strlen("/post/{handle}-{id}"), NULL);
|
r3_tree_insert_pathn(n, "/post/{handle}-{id}", strlen("/post/{handle}-{id}"), NULL, NULL);
|
||||||
r3_tree_compile(n);
|
r3_tree_compile(n);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
|
@ -282,342 +282,343 @@ START_TEST(benchmark_str)
|
||||||
|
|
||||||
int route_data = 999;
|
int route_data = 999;
|
||||||
|
|
||||||
r3_tree_insert_path(n, "/foo/bar/baz", NULL);
|
r3_tree_insert_path(n, "/foo/bar/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/bar/qux", NULL);
|
r3_tree_insert_path(n, "/foo/bar/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/bar/quux", NULL);
|
r3_tree_insert_path(n, "/foo/bar/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/bar/corge", NULL);
|
r3_tree_insert_path(n, "/foo/bar/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/bar/grault", NULL);
|
r3_tree_insert_path(n, "/foo/bar/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/bar/garply", NULL);
|
r3_tree_insert_path(n, "/foo/bar/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/baz/bar", NULL);
|
r3_tree_insert_path(n, "/foo/baz/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/baz/qux", NULL);
|
r3_tree_insert_path(n, "/foo/baz/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/baz/quux", NULL);
|
r3_tree_insert_path(n, "/foo/baz/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/baz/corge", NULL);
|
r3_tree_insert_path(n, "/foo/baz/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/baz/grault", NULL);
|
r3_tree_insert_path(n, "/foo/baz/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/baz/garply", NULL);
|
r3_tree_insert_path(n, "/foo/baz/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/qux/bar", NULL);
|
r3_tree_insert_path(n, "/foo/qux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/qux/baz", NULL);
|
r3_tree_insert_path(n, "/foo/qux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/qux/quux", NULL);
|
r3_tree_insert_path(n, "/foo/qux/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/qux/corge", NULL);
|
r3_tree_insert_path(n, "/foo/qux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/qux/grault", NULL);
|
r3_tree_insert_path(n, "/foo/qux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/qux/garply", NULL);
|
r3_tree_insert_path(n, "/foo/qux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/quux/bar", NULL);
|
r3_tree_insert_path(n, "/foo/quux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/quux/baz", NULL);
|
r3_tree_insert_path(n, "/foo/quux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/quux/qux", NULL);
|
r3_tree_insert_path(n, "/foo/quux/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/quux/corge", NULL);
|
r3_tree_insert_path(n, "/foo/quux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/quux/grault", NULL);
|
r3_tree_insert_path(n, "/foo/quux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/quux/garply", NULL);
|
r3_tree_insert_path(n, "/foo/quux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/corge/bar", NULL);
|
r3_tree_insert_path(n, "/foo/corge/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/corge/baz", NULL);
|
r3_tree_insert_path(n, "/foo/corge/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/corge/qux", NULL);
|
r3_tree_insert_path(n, "/foo/corge/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/corge/quux", NULL);
|
r3_tree_insert_path(n, "/foo/corge/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/corge/grault", NULL);
|
r3_tree_insert_path(n, "/foo/corge/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/corge/garply", NULL);
|
r3_tree_insert_path(n, "/foo/corge/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/grault/bar", NULL);
|
r3_tree_insert_path(n, "/foo/grault/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/grault/baz", NULL);
|
r3_tree_insert_path(n, "/foo/grault/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/grault/qux", NULL);
|
r3_tree_insert_path(n, "/foo/grault/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/grault/quux", NULL);
|
r3_tree_insert_path(n, "/foo/grault/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/grault/corge", NULL);
|
r3_tree_insert_path(n, "/foo/grault/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/grault/garply", NULL);
|
r3_tree_insert_path(n, "/foo/grault/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/garply/bar", NULL);
|
r3_tree_insert_path(n, "/foo/garply/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/garply/baz", NULL);
|
r3_tree_insert_path(n, "/foo/garply/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/garply/qux", NULL);
|
r3_tree_insert_path(n, "/foo/garply/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/garply/quux", NULL);
|
r3_tree_insert_path(n, "/foo/garply/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/garply/corge", NULL);
|
r3_tree_insert_path(n, "/foo/garply/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/foo/garply/grault", NULL);
|
r3_tree_insert_path(n, "/foo/garply/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/foo/baz", NULL);
|
r3_tree_insert_path(n, "/bar/foo/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/foo/qux", NULL);
|
r3_tree_insert_path(n, "/bar/foo/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/foo/quux", NULL);
|
r3_tree_insert_path(n, "/bar/foo/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/foo/corge", NULL);
|
r3_tree_insert_path(n, "/bar/foo/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/foo/grault", NULL);
|
r3_tree_insert_path(n, "/bar/foo/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/foo/garply", NULL);
|
r3_tree_insert_path(n, "/bar/foo/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/baz/foo", NULL);
|
r3_tree_insert_path(n, "/bar/baz/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/baz/qux", NULL);
|
r3_tree_insert_path(n, "/bar/baz/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/baz/quux", NULL);
|
r3_tree_insert_path(n, "/bar/baz/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/baz/corge", NULL);
|
r3_tree_insert_path(n, "/bar/baz/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/baz/grault", NULL);
|
r3_tree_insert_path(n, "/bar/baz/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/baz/garply", NULL);
|
r3_tree_insert_path(n, "/bar/baz/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/qux/foo", NULL);
|
r3_tree_insert_path(n, "/bar/qux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/qux/baz", NULL);
|
r3_tree_insert_path(n, "/bar/qux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/qux/quux", NULL);
|
r3_tree_insert_path(n, "/bar/qux/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/qux/corge", NULL);
|
r3_tree_insert_path(n, "/bar/qux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/qux/grault", NULL);
|
r3_tree_insert_path(n, "/bar/qux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/qux/garply", NULL);
|
r3_tree_insert_path(n, "/bar/qux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/quux/foo", NULL);
|
r3_tree_insert_path(n, "/bar/quux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/quux/baz", NULL);
|
r3_tree_insert_path(n, "/bar/quux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/quux/qux", NULL);
|
r3_tree_insert_path(n, "/bar/quux/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/quux/corge", NULL);
|
r3_tree_insert_path(n, "/bar/quux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/quux/grault", NULL);
|
r3_tree_insert_path(n, "/bar/quux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/quux/garply", NULL);
|
r3_tree_insert_path(n, "/bar/quux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/corge/foo", NULL);
|
r3_tree_insert_path(n, "/bar/corge/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/corge/baz", NULL);
|
r3_tree_insert_path(n, "/bar/corge/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/corge/qux", NULL);
|
r3_tree_insert_path(n, "/bar/corge/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/corge/quux", NULL);
|
r3_tree_insert_path(n, "/bar/corge/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/corge/grault", NULL);
|
r3_tree_insert_path(n, "/bar/corge/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/corge/garply", NULL);
|
r3_tree_insert_path(n, "/bar/corge/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/grault/foo", NULL);
|
r3_tree_insert_path(n, "/bar/grault/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/grault/baz", NULL);
|
r3_tree_insert_path(n, "/bar/grault/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/grault/qux", NULL);
|
r3_tree_insert_path(n, "/bar/grault/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/grault/quux", NULL);
|
r3_tree_insert_path(n, "/bar/grault/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/grault/corge", NULL);
|
r3_tree_insert_path(n, "/bar/grault/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/grault/garply", NULL);
|
r3_tree_insert_path(n, "/bar/grault/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/garply/foo", NULL);
|
r3_tree_insert_path(n, "/bar/garply/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/garply/baz", NULL);
|
r3_tree_insert_path(n, "/bar/garply/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/garply/qux", NULL);
|
r3_tree_insert_path(n, "/bar/garply/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/garply/quux", NULL);
|
r3_tree_insert_path(n, "/bar/garply/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/garply/corge", NULL);
|
r3_tree_insert_path(n, "/bar/garply/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/bar/garply/grault", NULL);
|
r3_tree_insert_path(n, "/bar/garply/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/foo/bar", NULL);
|
r3_tree_insert_path(n, "/baz/foo/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/foo/qux", NULL);
|
r3_tree_insert_path(n, "/baz/foo/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/foo/quux", NULL);
|
r3_tree_insert_path(n, "/baz/foo/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/foo/corge", NULL);
|
r3_tree_insert_path(n, "/baz/foo/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/foo/grault", NULL);
|
r3_tree_insert_path(n, "/baz/foo/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/foo/garply", NULL);
|
r3_tree_insert_path(n, "/baz/foo/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/bar/foo", NULL);
|
r3_tree_insert_path(n, "/baz/bar/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/bar/qux", NULL);
|
r3_tree_insert_path(n, "/baz/bar/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/bar/quux", NULL);
|
r3_tree_insert_path(n, "/baz/bar/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/bar/corge", NULL);
|
r3_tree_insert_path(n, "/baz/bar/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/bar/grault", NULL);
|
r3_tree_insert_path(n, "/baz/bar/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/bar/garply", NULL);
|
r3_tree_insert_path(n, "/baz/bar/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/qux/foo", NULL);
|
r3_tree_insert_path(n, "/baz/qux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/qux/bar", NULL);
|
r3_tree_insert_path(n, "/baz/qux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/qux/quux", NULL);
|
r3_tree_insert_path(n, "/baz/qux/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/qux/corge", NULL);
|
r3_tree_insert_path(n, "/baz/qux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/qux/grault", NULL);
|
r3_tree_insert_path(n, "/baz/qux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/qux/garply", NULL);
|
r3_tree_insert_path(n, "/baz/qux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/quux/foo", NULL);
|
r3_tree_insert_path(n, "/baz/quux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/quux/bar", NULL);
|
r3_tree_insert_path(n, "/baz/quux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/quux/qux", NULL);
|
r3_tree_insert_path(n, "/baz/quux/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/quux/corge", NULL);
|
r3_tree_insert_path(n, "/baz/quux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/quux/grault", NULL);
|
r3_tree_insert_path(n, "/baz/quux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/quux/garply", NULL);
|
r3_tree_insert_path(n, "/baz/quux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/corge/foo", NULL);
|
r3_tree_insert_path(n, "/baz/corge/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/corge/bar", NULL);
|
r3_tree_insert_path(n, "/baz/corge/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/corge/qux", NULL);
|
r3_tree_insert_path(n, "/baz/corge/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/corge/quux", NULL);
|
r3_tree_insert_path(n, "/baz/corge/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/corge/grault", NULL);
|
r3_tree_insert_path(n, "/baz/corge/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/corge/garply", NULL);
|
r3_tree_insert_path(n, "/baz/corge/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/grault/foo", NULL);
|
r3_tree_insert_path(n, "/baz/grault/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/grault/bar", NULL);
|
r3_tree_insert_path(n, "/baz/grault/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/grault/qux", NULL);
|
r3_tree_insert_path(n, "/baz/grault/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/grault/quux", NULL);
|
r3_tree_insert_path(n, "/baz/grault/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/grault/corge", NULL);
|
r3_tree_insert_path(n, "/baz/grault/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/grault/garply", NULL);
|
r3_tree_insert_path(n, "/baz/grault/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/garply/foo", NULL);
|
r3_tree_insert_path(n, "/baz/garply/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/garply/bar", NULL);
|
r3_tree_insert_path(n, "/baz/garply/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/garply/qux", NULL);
|
r3_tree_insert_path(n, "/baz/garply/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/garply/quux", NULL);
|
r3_tree_insert_path(n, "/baz/garply/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/garply/corge", NULL);
|
r3_tree_insert_path(n, "/baz/garply/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/baz/garply/grault", NULL);
|
r3_tree_insert_path(n, "/baz/garply/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/foo/bar", NULL);
|
r3_tree_insert_path(n, "/qux/foo/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/foo/baz", NULL);
|
r3_tree_insert_path(n, "/qux/foo/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/foo/quux", NULL);
|
r3_tree_insert_path(n, "/qux/foo/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/foo/corge", NULL);
|
r3_tree_insert_path(n, "/qux/foo/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/foo/grault", NULL);
|
r3_tree_insert_path(n, "/qux/foo/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/foo/garply", NULL);
|
r3_tree_insert_path(n, "/qux/foo/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/bar/foo", NULL);
|
r3_tree_insert_path(n, "/qux/bar/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/bar/baz", NULL);
|
r3_tree_insert_path(n, "/qux/bar/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/bar/quux", NULL);
|
r3_tree_insert_path(n, "/qux/bar/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/bar/corge", (void*) &route_data);
|
r3_tree_insert_path(n, "/qux/bar/corge", NULL, &route_data);
|
||||||
r3_tree_insert_path(n, "/qux/bar/grault", NULL);
|
r3_tree_insert_path(n, "/qux/bar/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/bar/garply", NULL);
|
r3_tree_insert_path(n, "/qux/bar/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/baz/foo", NULL);
|
r3_tree_insert_path(n, "/qux/baz/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/baz/bar", NULL);
|
r3_tree_insert_path(n, "/qux/baz/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/baz/quux", NULL);
|
r3_tree_insert_path(n, "/qux/baz/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/baz/corge", NULL);
|
r3_tree_insert_path(n, "/qux/baz/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/baz/grault", NULL);
|
r3_tree_insert_path(n, "/qux/baz/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/baz/garply", NULL);
|
r3_tree_insert_path(n, "/qux/baz/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/quux/foo", NULL);
|
r3_tree_insert_path(n, "/qux/quux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/quux/bar", NULL);
|
r3_tree_insert_path(n, "/qux/quux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/quux/baz", NULL);
|
r3_tree_insert_path(n, "/qux/quux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/quux/corge", NULL);
|
r3_tree_insert_path(n, "/qux/quux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/quux/grault", NULL);
|
r3_tree_insert_path(n, "/qux/quux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/quux/garply", NULL);
|
r3_tree_insert_path(n, "/qux/quux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/corge/foo", NULL);
|
r3_tree_insert_path(n, "/qux/corge/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/corge/bar", NULL);
|
r3_tree_insert_path(n, "/qux/corge/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/corge/baz", NULL);
|
r3_tree_insert_path(n, "/qux/corge/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/corge/quux", NULL);
|
r3_tree_insert_path(n, "/qux/corge/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/corge/grault", NULL);
|
r3_tree_insert_path(n, "/qux/corge/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/corge/garply", NULL);
|
r3_tree_insert_path(n, "/qux/corge/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/grault/foo", NULL);
|
r3_tree_insert_path(n, "/qux/grault/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/grault/bar", NULL);
|
r3_tree_insert_path(n, "/qux/grault/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/grault/baz", NULL);
|
r3_tree_insert_path(n, "/qux/grault/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/grault/quux", NULL);
|
r3_tree_insert_path(n, "/qux/grault/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/grault/corge", NULL);
|
r3_tree_insert_path(n, "/qux/grault/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/grault/garply", NULL);
|
r3_tree_insert_path(n, "/qux/grault/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/garply/foo", NULL);
|
r3_tree_insert_path(n, "/qux/garply/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/garply/bar", NULL);
|
r3_tree_insert_path(n, "/qux/garply/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/garply/baz", NULL);
|
r3_tree_insert_path(n, "/qux/garply/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/garply/quux", NULL);
|
r3_tree_insert_path(n, "/qux/garply/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/garply/corge", NULL);
|
r3_tree_insert_path(n, "/qux/garply/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/qux/garply/grault", NULL);
|
r3_tree_insert_path(n, "/qux/garply/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/foo/bar", NULL);
|
r3_tree_insert_path(n, "/quux/foo/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/foo/baz", NULL);
|
r3_tree_insert_path(n, "/quux/foo/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/foo/qux", NULL);
|
r3_tree_insert_path(n, "/quux/foo/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/foo/corge", NULL);
|
r3_tree_insert_path(n, "/quux/foo/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/foo/grault", NULL);
|
r3_tree_insert_path(n, "/quux/foo/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/foo/garply", NULL);
|
r3_tree_insert_path(n, "/quux/foo/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/bar/foo", NULL);
|
r3_tree_insert_path(n, "/quux/bar/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/bar/baz", NULL);
|
r3_tree_insert_path(n, "/quux/bar/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/bar/qux", NULL);
|
r3_tree_insert_path(n, "/quux/bar/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/bar/corge", NULL);
|
r3_tree_insert_path(n, "/quux/bar/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/bar/grault", NULL);
|
r3_tree_insert_path(n, "/quux/bar/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/bar/garply", NULL);
|
r3_tree_insert_path(n, "/quux/bar/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/baz/foo", NULL);
|
r3_tree_insert_path(n, "/quux/baz/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/baz/bar", NULL);
|
r3_tree_insert_path(n, "/quux/baz/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/baz/qux", NULL);
|
r3_tree_insert_path(n, "/quux/baz/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/baz/corge", NULL);
|
r3_tree_insert_path(n, "/quux/baz/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/baz/grault", NULL);
|
r3_tree_insert_path(n, "/quux/baz/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/baz/garply", NULL);
|
r3_tree_insert_path(n, "/quux/baz/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/qux/foo", NULL);
|
r3_tree_insert_path(n, "/quux/qux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/qux/bar", NULL);
|
r3_tree_insert_path(n, "/quux/qux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/qux/baz", NULL);
|
r3_tree_insert_path(n, "/quux/qux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/qux/corge", NULL);
|
r3_tree_insert_path(n, "/quux/qux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/qux/grault", NULL);
|
r3_tree_insert_path(n, "/quux/qux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/qux/garply", NULL);
|
r3_tree_insert_path(n, "/quux/qux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/corge/foo", NULL);
|
r3_tree_insert_path(n, "/quux/corge/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/corge/bar", NULL);
|
r3_tree_insert_path(n, "/quux/corge/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/corge/baz", NULL);
|
r3_tree_insert_path(n, "/quux/corge/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/corge/qux", NULL);
|
r3_tree_insert_path(n, "/quux/corge/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/corge/grault", NULL);
|
r3_tree_insert_path(n, "/quux/corge/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/corge/garply", NULL);
|
r3_tree_insert_path(n, "/quux/corge/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/grault/foo", NULL);
|
r3_tree_insert_path(n, "/quux/grault/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/grault/bar", NULL);
|
r3_tree_insert_path(n, "/quux/grault/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/grault/baz", NULL);
|
r3_tree_insert_path(n, "/quux/grault/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/grault/qux", NULL);
|
r3_tree_insert_path(n, "/quux/grault/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/grault/corge", NULL);
|
r3_tree_insert_path(n, "/quux/grault/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/grault/garply", NULL);
|
r3_tree_insert_path(n, "/quux/grault/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/garply/foo", NULL);
|
r3_tree_insert_path(n, "/quux/garply/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/garply/bar", NULL);
|
r3_tree_insert_path(n, "/quux/garply/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/garply/baz", NULL);
|
r3_tree_insert_path(n, "/quux/garply/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/garply/qux", NULL);
|
r3_tree_insert_path(n, "/quux/garply/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/garply/corge", NULL);
|
r3_tree_insert_path(n, "/quux/garply/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/quux/garply/grault", NULL);
|
r3_tree_insert_path(n, "/quux/garply/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/foo/bar", NULL);
|
r3_tree_insert_path(n, "/corge/foo/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/foo/baz", NULL);
|
r3_tree_insert_path(n, "/corge/foo/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/foo/qux", NULL);
|
r3_tree_insert_path(n, "/corge/foo/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/foo/quux", NULL);
|
r3_tree_insert_path(n, "/corge/foo/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/foo/grault", NULL);
|
r3_tree_insert_path(n, "/corge/foo/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/foo/garply", NULL);
|
r3_tree_insert_path(n, "/corge/foo/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/bar/foo", NULL);
|
r3_tree_insert_path(n, "/corge/bar/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/bar/baz", NULL);
|
r3_tree_insert_path(n, "/corge/bar/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/bar/qux", NULL);
|
r3_tree_insert_path(n, "/corge/bar/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/bar/quux", NULL);
|
r3_tree_insert_path(n, "/corge/bar/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/bar/grault", NULL);
|
r3_tree_insert_path(n, "/corge/bar/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/bar/garply", NULL);
|
r3_tree_insert_path(n, "/corge/bar/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/baz/foo", NULL);
|
r3_tree_insert_path(n, "/corge/baz/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/baz/bar", NULL);
|
r3_tree_insert_path(n, "/corge/baz/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/baz/qux", NULL);
|
r3_tree_insert_path(n, "/corge/baz/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/baz/quux", NULL);
|
r3_tree_insert_path(n, "/corge/baz/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/baz/grault", NULL);
|
r3_tree_insert_path(n, "/corge/baz/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/baz/garply", NULL);
|
r3_tree_insert_path(n, "/corge/baz/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/qux/foo", NULL);
|
r3_tree_insert_path(n, "/corge/qux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/qux/bar", NULL);
|
r3_tree_insert_path(n, "/corge/qux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/qux/baz", NULL);
|
r3_tree_insert_path(n, "/corge/qux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/qux/quux", NULL);
|
r3_tree_insert_path(n, "/corge/qux/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/qux/grault", NULL);
|
r3_tree_insert_path(n, "/corge/qux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/qux/garply", NULL);
|
r3_tree_insert_path(n, "/corge/qux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/quux/foo", NULL);
|
r3_tree_insert_path(n, "/corge/quux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/quux/bar", NULL);
|
r3_tree_insert_path(n, "/corge/quux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/quux/baz", NULL);
|
r3_tree_insert_path(n, "/corge/quux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/quux/qux", NULL);
|
r3_tree_insert_path(n, "/corge/quux/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/quux/grault", NULL);
|
r3_tree_insert_path(n, "/corge/quux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/quux/garply", NULL);
|
r3_tree_insert_path(n, "/corge/quux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/grault/foo", NULL);
|
r3_tree_insert_path(n, "/corge/grault/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/grault/bar", NULL);
|
r3_tree_insert_path(n, "/corge/grault/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/grault/baz", NULL);
|
r3_tree_insert_path(n, "/corge/grault/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/grault/qux", NULL);
|
r3_tree_insert_path(n, "/corge/grault/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/grault/quux", NULL);
|
r3_tree_insert_path(n, "/corge/grault/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/grault/garply", NULL);
|
r3_tree_insert_path(n, "/corge/grault/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/garply/foo", NULL);
|
r3_tree_insert_path(n, "/corge/garply/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/garply/bar", NULL);
|
r3_tree_insert_path(n, "/corge/garply/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/garply/baz", NULL);
|
r3_tree_insert_path(n, "/corge/garply/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/garply/qux", NULL);
|
r3_tree_insert_path(n, "/corge/garply/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/garply/quux", NULL);
|
r3_tree_insert_path(n, "/corge/garply/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/corge/garply/grault", NULL);
|
r3_tree_insert_path(n, "/corge/garply/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/foo/bar", NULL);
|
r3_tree_insert_path(n, "/grault/foo/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/foo/baz", NULL);
|
r3_tree_insert_path(n, "/grault/foo/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/foo/qux", NULL);
|
r3_tree_insert_path(n, "/grault/foo/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/foo/quux", NULL);
|
r3_tree_insert_path(n, "/grault/foo/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/foo/corge", NULL);
|
r3_tree_insert_path(n, "/grault/foo/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/foo/garply", NULL);
|
r3_tree_insert_path(n, "/grault/foo/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/bar/foo", NULL);
|
r3_tree_insert_path(n, "/grault/bar/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/bar/baz", NULL);
|
r3_tree_insert_path(n, "/grault/bar/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/bar/qux", NULL);
|
r3_tree_insert_path(n, "/grault/bar/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/bar/quux", NULL);
|
r3_tree_insert_path(n, "/grault/bar/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/bar/corge", NULL);
|
r3_tree_insert_path(n, "/grault/bar/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/bar/garply", NULL);
|
r3_tree_insert_path(n, "/grault/bar/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/baz/foo", NULL);
|
r3_tree_insert_path(n, "/grault/baz/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/baz/bar", NULL);
|
r3_tree_insert_path(n, "/grault/baz/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/baz/qux", NULL);
|
r3_tree_insert_path(n, "/grault/baz/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/baz/quux", NULL);
|
r3_tree_insert_path(n, "/grault/baz/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/baz/corge", NULL);
|
r3_tree_insert_path(n, "/grault/baz/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/baz/garply", NULL);
|
r3_tree_insert_path(n, "/grault/baz/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/qux/foo", NULL);
|
r3_tree_insert_path(n, "/grault/qux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/qux/bar", NULL);
|
r3_tree_insert_path(n, "/grault/qux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/qux/baz", NULL);
|
r3_tree_insert_path(n, "/grault/qux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/qux/quux", NULL);
|
r3_tree_insert_path(n, "/grault/qux/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/qux/corge", NULL);
|
r3_tree_insert_path(n, "/grault/qux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/qux/garply", NULL);
|
r3_tree_insert_path(n, "/grault/qux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/quux/foo", NULL);
|
r3_tree_insert_path(n, "/grault/quux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/quux/bar", NULL);
|
r3_tree_insert_path(n, "/grault/quux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/quux/baz", NULL);
|
r3_tree_insert_path(n, "/grault/quux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/quux/qux", NULL);
|
r3_tree_insert_path(n, "/grault/quux/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/quux/corge", NULL);
|
r3_tree_insert_path(n, "/grault/quux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/quux/garply", NULL);
|
r3_tree_insert_path(n, "/grault/quux/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/corge/foo", NULL);
|
r3_tree_insert_path(n, "/grault/corge/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/corge/bar", NULL);
|
r3_tree_insert_path(n, "/grault/corge/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/corge/baz", NULL);
|
r3_tree_insert_path(n, "/grault/corge/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/corge/qux", NULL);
|
r3_tree_insert_path(n, "/grault/corge/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/corge/quux", NULL);
|
r3_tree_insert_path(n, "/grault/corge/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/corge/garply", NULL);
|
r3_tree_insert_path(n, "/grault/corge/garply", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/garply/foo", NULL);
|
r3_tree_insert_path(n, "/grault/garply/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/garply/bar", NULL);
|
r3_tree_insert_path(n, "/grault/garply/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/garply/baz", NULL);
|
r3_tree_insert_path(n, "/grault/garply/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/garply/qux", NULL);
|
r3_tree_insert_path(n, "/grault/garply/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/garply/quux", NULL);
|
r3_tree_insert_path(n, "/grault/garply/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/grault/garply/corge", NULL);
|
r3_tree_insert_path(n, "/grault/garply/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/foo/bar", NULL);
|
r3_tree_insert_path(n, "/garply/foo/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/foo/baz", NULL);
|
r3_tree_insert_path(n, "/garply/foo/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/foo/qux", NULL);
|
r3_tree_insert_path(n, "/garply/foo/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/foo/quux", NULL);
|
r3_tree_insert_path(n, "/garply/foo/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/foo/corge", NULL);
|
r3_tree_insert_path(n, "/garply/foo/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/foo/grault", NULL);
|
r3_tree_insert_path(n, "/garply/foo/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/bar/foo", NULL);
|
r3_tree_insert_path(n, "/garply/bar/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/bar/baz", NULL);
|
r3_tree_insert_path(n, "/garply/bar/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/bar/qux", NULL);
|
r3_tree_insert_path(n, "/garply/bar/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/bar/quux", NULL);
|
r3_tree_insert_path(n, "/garply/bar/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/bar/corge", NULL);
|
r3_tree_insert_path(n, "/garply/bar/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/bar/grault", NULL);
|
r3_tree_insert_path(n, "/garply/bar/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/baz/foo", NULL);
|
r3_tree_insert_path(n, "/garply/baz/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/baz/bar", NULL);
|
r3_tree_insert_path(n, "/garply/baz/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/baz/qux", NULL);
|
r3_tree_insert_path(n, "/garply/baz/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/baz/quux", NULL);
|
r3_tree_insert_path(n, "/garply/baz/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/baz/corge", NULL);
|
r3_tree_insert_path(n, "/garply/baz/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/baz/grault", NULL);
|
r3_tree_insert_path(n, "/garply/baz/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/qux/foo", NULL);
|
r3_tree_insert_path(n, "/garply/qux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/qux/bar", NULL);
|
r3_tree_insert_path(n, "/garply/qux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/qux/baz", NULL);
|
r3_tree_insert_path(n, "/garply/qux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/qux/quux", NULL);
|
r3_tree_insert_path(n, "/garply/qux/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/qux/corge", NULL);
|
r3_tree_insert_path(n, "/garply/qux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/qux/grault", NULL);
|
r3_tree_insert_path(n, "/garply/qux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/quux/foo", NULL);
|
r3_tree_insert_path(n, "/garply/quux/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/quux/bar", NULL);
|
r3_tree_insert_path(n, "/garply/quux/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/quux/baz", NULL);
|
r3_tree_insert_path(n, "/garply/quux/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/quux/qux", NULL);
|
r3_tree_insert_path(n, "/garply/quux/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/quux/corge", NULL);
|
r3_tree_insert_path(n, "/garply/quux/corge", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/quux/grault", NULL);
|
r3_tree_insert_path(n, "/garply/quux/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/corge/foo", NULL);
|
r3_tree_insert_path(n, "/garply/corge/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/corge/bar", NULL);
|
r3_tree_insert_path(n, "/garply/corge/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/corge/baz", NULL);
|
r3_tree_insert_path(n, "/garply/corge/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/corge/qux", NULL);
|
r3_tree_insert_path(n, "/garply/corge/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/corge/quux", NULL);
|
r3_tree_insert_path(n, "/garply/corge/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/corge/grault", NULL);
|
r3_tree_insert_path(n, "/garply/corge/grault", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/grault/foo", NULL);
|
r3_tree_insert_path(n, "/garply/grault/foo", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/grault/bar", NULL);
|
r3_tree_insert_path(n, "/garply/grault/bar", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/grault/baz", NULL);
|
r3_tree_insert_path(n, "/garply/grault/baz", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/grault/qux", NULL);
|
r3_tree_insert_path(n, "/garply/grault/qux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/grault/quux", NULL);
|
r3_tree_insert_path(n, "/garply/grault/quux", NULL, NULL);
|
||||||
r3_tree_insert_path(n, "/garply/grault/corge", NULL);
|
r3_tree_insert_path(n, "/garply/grault/corge", NULL, NULL);
|
||||||
|
|
||||||
|
|
||||||
r3_tree_compile(n);
|
r3_tree_compile(n);
|
||||||
// r3_tree_dump(n, 0);
|
// r3_tree_dump(n, 0);
|
||||||
|
|
Loading…
Reference in a new issue