r3_path_contains_slug_char function
This commit is contained in:
parent
3512bf033a
commit
0eb9cad11c
6 changed files with 10 additions and 17 deletions
|
@ -14,8 +14,6 @@ int slug_count(const char * p, int len, char ** errstr);
|
||||||
|
|
||||||
char * slug_compile(const char * str, int len);
|
char * slug_compile(const char * str, int len);
|
||||||
|
|
||||||
bool contains_slug(const char * str);
|
|
||||||
|
|
||||||
char * slug_find_pattern(const char *s1, int *len);
|
char * slug_find_pattern(const char *s1, int *len);
|
||||||
|
|
||||||
char * slug_find_placeholder(const char *s1, int *len);
|
char * slug_find_placeholder(const char *s1, int *len);
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
|
|
||||||
#include "r3.h"
|
#include "r3.h"
|
||||||
#include "r3_str.h"
|
#include "r3_str.h"
|
||||||
|
#include "slug.h"
|
||||||
#include "zmalloc.h"
|
#include "zmalloc.h"
|
||||||
|
|
||||||
|
|
||||||
|
@ -629,7 +630,7 @@ bool r3_node_has_slug_edges(const node *n) {
|
||||||
edge *e;
|
edge *e;
|
||||||
for ( int i = 0 ; i < n->edge_len ; i++ ) {
|
for ( int i = 0 ; i < n->edge_len ; i++ ) {
|
||||||
e = n->edges[i];
|
e = n->edges[i];
|
||||||
e->has_slug = contains_slug(e->pattern);
|
e->has_slug = r3_path_contains_slug_char(e->pattern);
|
||||||
if (e->has_slug)
|
if (e->has_slug)
|
||||||
found = TRUE;
|
found = TRUE;
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,11 +13,6 @@
|
||||||
#include "slug.h"
|
#include "slug.h"
|
||||||
#include "zmalloc.h"
|
#include "zmalloc.h"
|
||||||
|
|
||||||
inline static int contains_slug_char(const char * str);
|
|
||||||
|
|
||||||
inline static int contains_slug_char(const char * str) {
|
|
||||||
return strchr(str, '{') != NULL ? 1 : 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
r3_slug_t * r3_slug_new(char * path, int path_len) {
|
r3_slug_t * r3_slug_new(char * path, int path_len) {
|
||||||
|
@ -46,7 +41,7 @@ void r3_slug_free(r3_slug_t * s) {
|
||||||
* Return 0 means Empty
|
* Return 0 means Empty
|
||||||
* Return -1 means Error
|
* Return -1 means Error
|
||||||
*/
|
*/
|
||||||
int r3_slug_check(r3_slug_t *s, char **errstr) {
|
int r3_slug_check(r3_slug_t *s) {
|
||||||
// if it's empty
|
// if it's empty
|
||||||
if (s->begin == NULL && s->len == 0) {
|
if (s->begin == NULL && s->len == 0) {
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -88,7 +83,7 @@ r3_slug_t * r3_slug_parse(char *needle, int needle_len, char *offset, char **err
|
||||||
}
|
}
|
||||||
|
|
||||||
// there is no slug
|
// there is no slug
|
||||||
if (!contains_slug_char(offset)) {
|
if (!r3_path_contains_slug_char(offset)) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@ typedef struct {
|
||||||
|
|
||||||
r3_slug_t * r3_slug_new(char * path, int path_len);
|
r3_slug_t * r3_slug_new(char * path, int path_len);
|
||||||
|
|
||||||
int r3_slug_check(r3_slug_t *s, char **errstr);
|
int r3_slug_check(r3_slug_t *s);
|
||||||
|
|
||||||
r3_slug_t * r3_slug_parse(char *needle, int needle_len, char *offset, char **errstr);
|
r3_slug_t * r3_slug_parse(char *needle, int needle_len, char *offset, char **errstr);
|
||||||
|
|
||||||
|
@ -49,4 +49,8 @@ char * r3_slug_to_str(const r3_slug_t *s);
|
||||||
|
|
||||||
void r3_slug_free(r3_slug_t * s);
|
void r3_slug_free(r3_slug_t * s);
|
||||||
|
|
||||||
|
inline int r3_path_contains_slug_char(const char * str) {
|
||||||
|
return strchr(str, '{') != NULL ? 1 : 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* !SLUG_H */
|
#endif /* !SLUG_H */
|
||||||
|
|
|
@ -73,10 +73,6 @@ int slug_count(const char * needle, int len, char **errstr) {
|
||||||
return cnt;
|
return cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool contains_slug(const char * str) {
|
|
||||||
return strchr(str, '{') != NULL ? TRUE : FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
char * inside_slug(const char * needle, int needle_len, char *offset, char **errstr) {
|
char * inside_slug(const char * needle, int needle_len, char *offset, char **errstr) {
|
||||||
char * s1 = offset;
|
char * s1 = offset;
|
||||||
char * s2 = offset;
|
char * s2 = offset;
|
||||||
|
|
|
@ -45,8 +45,7 @@ END_TEST
|
||||||
|
|
||||||
START_TEST (test_contains_slug)
|
START_TEST (test_contains_slug)
|
||||||
{
|
{
|
||||||
char * path = "/user/{id}/{name}";
|
ck_assert( r3_path_contains_slug_char("/user/{id}/{name}") );
|
||||||
ck_assert( contains_slug(path) );
|
|
||||||
}
|
}
|
||||||
END_TEST
|
END_TEST
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue