diff options
-rw-r--r-- | src/deliverable.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/deliverable.c b/src/deliverable.c index 9b43772..b833811 100644 --- a/src/deliverable.c +++ b/src/deliverable.c @@ -18,10 +18,17 @@ extern struct OMC_GLOBAL globals; } #define conv_int(X, DEST) X->DEST = val.as_int; -#define conv_str(X, DEST) X->DEST = runtime_expand_var(NULL, val.as_char_p); +#define conv_str(X, DEST) { \ + char *tplop = tpl_render(runtime_expand_var(NULL, val.as_char_p)); \ + if (tplop) { \ + X->DEST = tplop; \ + } else { \ + X->DEST = val.as_char_p; \ + } \ +} #define conv_str_noexpand(X, DEST) if (val.as_char_p) X->DEST = strdup(val.as_char_p); #define conv_strlist(X, DEST, TOK) { \ - char *rtevnop = runtime_expand_var(NULL, val.as_char_p); \ + char *rtevnop = tpl_render(runtime_expand_var(NULL, val.as_char_p)); \ if (!X->DEST) \ X->DEST = strlist_init(); \ if (rtevnop) { \ @@ -34,9 +41,9 @@ extern struct OMC_GLOBAL globals; } #define conv_bool(X, DEST) X->DEST = val.as_bool; -#define conv_str_stackvar(X, DEST) X.DEST = runtime_expand_var(NULL, val.as_char_p); +#define conv_str_stackvar(X, DEST) X.DEST = tpl_render(runtime_expand_var(NULL, val.as_char_p)); #define conv_strlist_stackvar(X, DEST, TOK) { \ - char *rtevnop = runtime_expand_var(NULL, val.as_char_p); \ + char *rtevnop = tpl_render(runtime_expand_var(NULL, val.as_char_p)); \ if (!X.DEST) \ X.DEST = strlist_init(); \ if (rtevnop) { \ |