Add cpp_process func to invoke C preprocessor which allow to change the logic in one place only.
Signed-off-by: Vadim Kochan <[email protected]> --- cpp.c | 28 ++++++++++++++++++++++++++++ cpp.h | 6 ++++++ 2 files changed, 34 insertions(+) create mode 100644 cpp.c create mode 100644 cpp.h diff --git a/cpp.c b/cpp.c new file mode 100644 index 0000000..66603f7 --- /dev/null +++ b/cpp.c @@ -0,0 +1,28 @@ +#include <stdio.h> +#include <libgen.h> + +#include "str.h" +#include "xmalloc.h" + +int cpp_process(char *in_file, char *out_file, size_t out_len) +{ + char cmd[256], *dir, *base, *a = NULL, *b = NULL; + int ret = 0; + + dir = dirname((a = xstrdup(in_file))); + base = basename((b = xstrdup(in_file))); + + slprintf(out_file, out_len, "%s/.tmp-%u-%s", dir, rand(), base); + slprintf(cmd, sizeof(cmd), "cpp -I" ETCDIRE_STRING " %s > %s", + in_file, out_file); + + if (system(cmd) != 0) { + ret = -1; + goto exit; + } + +exit: + xfree(a); + xfree(b); + return ret; +} diff --git a/cpp.h b/cpp.h new file mode 100644 index 0000000..2d77000 --- /dev/null +++ b/cpp.h @@ -0,0 +1,6 @@ +#ifndef CPP_H +#define CPP_H + +int cpp_process(char *in_file, char *out_file, size_t out_len); + +#endif -- 2.6.2 -- You received this message because you are subscribed to the Google Groups "netsniff-ng" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
