diff options
author | Danny van Kooten <dannyvankooten@users.noreply.github.com> | 2020-03-20 14:48:34 +0100 |
---|---|---|
committer | Danny van Kooten <dannyvankooten@users.noreply.github.com> | 2020-03-20 14:48:34 +0100 |
commit | f64c97341cedf668c6e7ae7cad818bae6fdb90bd (patch) | |
tree | f01d9007b84b00600d638274e45883a83d037003 /src | |
parent | d38575d2b97f7a86cfe6dd93df7de31612e19890 (diff) | |
download | unja-f64c97341cedf668c6e7ae7cad818bae6fdb90bd.tar.gz unja-f64c97341cedf668c6e7ae7cad818bae6fdb90bd.zip |
add filter: lower
Diffstat (limited to 'src')
-rw-r--r-- | src/template.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/template.c b/src/template.c index 1c1945e..9555206 100644 --- a/src/template.c +++ b/src/template.c @@ -4,6 +4,8 @@ #include <unistd.h> #include <dirent.h> #include <string.h> +#include <assert.h> + #include "vendor/mpc.h" #include "template.h" @@ -634,16 +636,25 @@ char *render_ast(mpc_ast_t *ast, struct context *ctx) { return buf.string; } -struct unja_object *filter_trim(struct unja_object *in) { - /* TODO: Keep original pointer */ - in->string = trim_leading_whitespace(in->string); - trim_trailing_whitespace(in->string); - return in; +struct unja_object *filter_trim(struct unja_object *obj) { + assert(obj->type == OBJ_STRING); + obj->string = trim_leading_whitespace(obj->string); + trim_trailing_whitespace(obj->string); + return obj; +} + +struct unja_object *filter_lower(struct unja_object *obj) { + assert(obj->type == OBJ_STRING); + for (int i=0; i < strlen(obj->string); i++) { + obj->string[i] = tolower(obj->string[i]); + } + return obj; } struct hashmap *default_filters() { struct hashmap *filters = hashmap_new(); hashmap_insert(filters, "trim", filter_trim); + hashmap_insert(filters, "lower", filter_lower); return filters; } |