diff options
author | Vadim Kochan <vadim4j@gmail.com> | 2015-11-22 21:09:38 +0200 |
---|---|---|
committer | Tobias Klauser <tklauser@distanz.ch> | 2015-11-24 10:24:17 +0100 |
commit | 5e7e8b46fc84d8010e11d3c43d8c2b742028375f (patch) | |
tree | fc3f14674c3fa6f778774fe13517bdeacd667bbf | |
parent | 8a8fd13d6dc2f99cc731657aaffcc1c7dcd975b3 (diff) |
trafgen: Invoke C preprocessor from cpp.c module
Use cpp_exec func to invoke C preprocesor.
Signed-off-by: Vadim Kochan <vadim4j@gmail.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
-rw-r--r-- | trafgen/Makefile | 1 | ||||
-rw-r--r-- | trafgen_parser.y | 14 |
2 files changed, 3 insertions, 12 deletions
diff --git a/trafgen/Makefile b/trafgen/Makefile index 9777485..bc256b2 100644 --- a/trafgen/Makefile +++ b/trafgen/Makefile @@ -18,6 +18,7 @@ trafgen-objs = xmalloc.o \ ring.o \ timer.o \ sysctl.o \ + cpp.o \ trafgen_lexer.yy.o \ trafgen_parser.tab.o \ trafgen.o diff --git a/trafgen_parser.y b/trafgen_parser.y index a05b7e8..afcb3e2 100644 --- a/trafgen_parser.y +++ b/trafgen_parser.y @@ -25,6 +25,7 @@ #include "die.h" #include "str.h" #include "csum.h" +#include "cpp.h" #define YYERROR_VERBOSE 0 #define YYDEBUG 0 @@ -598,22 +599,11 @@ void compile_packets(char *file, bool verbose, unsigned int cpu, bool invoke_cpp our_cpu = cpu; if (invoke_cpp) { - char cmd[256], *dir, *base, *a, *b; - - dir = dirname((a = xstrdup(file))); - base = basename((b = xstrdup(file))); - - slprintf(tmp_file, sizeof(tmp_file), "%s/.tmp-%u-%s", dir, rand(), base); - slprintf(cmd, sizeof(cmd), "cpp -I" ETCDIRE_STRING " %s > %s", - file, tmp_file); - if (system(cmd) != 0) { + if (cpp_exec(file, tmp_file, sizeof(tmp_file))) { fprintf(stderr, "Failed to invoke C preprocessor!\n"); goto err; } - file = tmp_file; - xfree(a); - xfree(b); } if (!strncmp("-", file, strlen("-"))) |