by Yo-An Lin yoanlin93@gmail.com
- Renamed node/edge struct to R3Node and R3Edge
- Fix graphviz generator.
HAVE_STRNDUP
andHAVE_STRDUP
definition fix
- Added Incorrect slug syntax warnings
- Added error message support for pcre/pcre-jit compile
- Added JSON encode support for the tree structure
- Improved Graphivz Related Functions
- More failing test cases
- Bug fixes.
- Function declaration improvement.
- pkg-config flags update (r3.pc)
- Added simple pattern optimization.
- Clean up.
- Bug fixes.
API changes:
-
Removed the
route
argument fromr3_tree_insert_pathl_ex
:node * r3_tree_insert_pathl_ex(node *tree, char *path, int path_len, void * data);
This reduce the interface complexity, e.g.,
r3_tree_insert_path(n, "/user2/{id:\\d+}", &var2);
-
The original
r3_tree_insert_pathl_ex
has been moved tor3_tree_insert_pathl_ex
as a private API. -
Moved
r3_tree_matchl
tor3_tree_matchl
since it require the length of the path string.m = r3_tree_matchl( n , "/foo", strlen("/foo"), entry);
-
Added
r3_tree_match
for users to match a path without the length of the path string.m = r3_tree_match( n , "/foo", entry);
-
Added
r3_tree_match_entry
for users want to match amatch_entry
, which is just a macro to simplify the use:#define r3_tree_match_entry(n, entry) r3_tree_matchl(n, entry->path, entry->path_len, entry)
-
Please note that A path that is inserted by
r3_tree_insert_route
can only be matched byr3_tree_match_route
. -
Added
r3_
prefix toroute
related methods.