From 6c0b4a46fe1939a18ce851d63066f0f05e90a5d8 Mon Sep 17 00:00:00 2001 From: "Wolfgang (Blub) Bumiller" Date: Fri, 16 Nov 2012 20:49:37 +0100 Subject: [PATCH] moving ftepp_out further up, using it in ftepp_macro_call, generating output of parameter-less macros --- ftepp.c | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/ftepp.c b/ftepp.c index cd42217..fcdaea7 100644 --- a/ftepp.c +++ b/ftepp.c @@ -147,6 +147,16 @@ void ftepp_delete(ftepp_t *self) mem_d(self); } +static void ftepp_out(ftepp_t *ftepp, const char *str, bool ignore_cond) +{ + if (ignore_cond || + !vec_size(ftepp->conditions) || + vec_last(ftepp->conditions).on) + { + printf("%s", str); + } +} + ppmacro* ftepp_macro_find(ftepp_t *ftepp, const char *name) { size_t i; @@ -280,7 +290,16 @@ static bool ftepp_define(ftepp_t *ftepp) static bool ftepp_macro_call(ftepp_t *ftepp, ppmacro *macro) { + size_t o; ftepp_next(ftepp); + + if (!macro->has_params) { + for (o = 0; o < vec_size(macro->output); ++o) { + ftepp_out(ftepp, macro->output[o]->value, false); + } + return true; + } + if (!ftepp_skipallwhite(ftepp)) return false; return true; @@ -611,16 +630,6 @@ static bool ftepp_hash(ftepp_t *ftepp) return true; } -static void ftepp_out(ftepp_t *ftepp, const char *str, bool ignore_cond) -{ - if (ignore_cond || - !vec_size(ftepp->conditions) || - vec_last(ftepp->conditions).on) - { - printf("%s", str); - } -} - static bool ftepp_preprocess(ftepp_t *ftepp) { ppmacro *macro; -- 2.39.2