Commit f3194477 authored by josé bollo's avatar josé bollo

Adds a compilation option to remove extensions

When compiling mustach.c or mustach-json-c.c,
extensions can be removed by defining macros
using option -D.

The possible macros are:


    This macro remove the ability to use colon (:)
    as explicit command for variable substituion.
    This extension allows to have name starting
    with one of the mustach character :#^/&{=


    This macro allows the tool to check the whether
    the actual value is equal to an expected value.
    This is useful in {{#key=val}} or {{^key=val}}
    with the corresponding {{/key=val}}.
    It can also be used in {{key=val}} but this
    doesn't seem to be useful.


    This macro disables any current or futur
Signed-off-by: josé bollo's avatarJosé Bollo <>
parent 2cec0f1f
......@@ -38,6 +38,7 @@ struct expl {
} stack[MAX_DEPTH];
static char *keyval(char *head)
char *w, c;
......@@ -52,6 +53,7 @@ static char *keyval(char *head)
*w = 0;
return c == '=' ? ++head : NULL;
static char *key(char **head)
......@@ -81,7 +83,10 @@ static struct json_object *find(struct expl *e, const char *name)
char *n, *c, *v;
n = strdupa(name);
v = NULL;
v = keyval(n);
c = key(&n);
if (c == NULL)
return NULL;
......@@ -104,7 +104,9 @@ static int process(const char *template, struct mustach_itf *itf, void *closure,
case '/':
case '&':
case '>':
case ':':
beg++; len--;
while (len && isspace(beg[0])) { beg++; len--; }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment