diff options
author | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2019-02-10 00:58:25 +0100 |
---|---|---|
committer | Rafael G. Martins <rafael@rafaelmartins.eng.br> | 2019-02-10 00:58:25 +0100 |
commit | 8b7ef9a86d712f0939d1170b5abfe9af13b1873e (patch) | |
tree | f535fc319fd41126ab1100b4b59d2c02c8cc8ba0 /src/blogc/funcvars.c | |
parent | 49ed30a5e87e510fd0c14b367110175f9d2fb144 (diff) | |
download | blogc-8b7ef9a86d712f0939d1170b5abfe9af13b1873e.tar.gz blogc-8b7ef9a86d712f0939d1170b5abfe9af13b1873e.tar.bz2 blogc-8b7ef9a86d712f0939d1170b5abfe9af13b1873e.zip |
blogc: funcvars: code simplified, added tests
Diffstat (limited to 'src/blogc/funcvars.c')
-rw-r--r-- | src/blogc/funcvars.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/blogc/funcvars.c b/src/blogc/funcvars.c index 25a22bf..42411e2 100644 --- a/src/blogc/funcvars.c +++ b/src/blogc/funcvars.c @@ -43,20 +43,23 @@ static const struct func_map { }; -char* -blogc_funcvars_lookup(const char *name, bc_trie_t *global) +void +blogc_funcvars_eval(bc_trie_t *global, const char *name) { + if (global == NULL || name == NULL) + return; + // protect against evaluating the same function twice in the same global // context if (NULL != bc_trie_lookup(global, name)) - return NULL; + return; for (size_t i = 0; funcs[i].variable != NULL; i++) { if (0 == strcmp(name, funcs[i].variable)) { funcs[i].func(global); - return bc_strdup(bc_trie_lookup(global, name)); + return; } } - return NULL; + return; } |