On Thu, Nov 19, 2015 at 09:49:09PM +0200, Vadim Kochan wrote:
> Add cpp_exec func to invoke C preprocessor
> which allow to change the logic in one place only.
> 
> Signed-off-by: Vadim Kochan <[email protected]>
> ---
>  cpp.c | 27 +++++++++++++++++++++++++++
>  cpp.h |  6 ++++++
>  2 files changed, 33 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..8448252
> --- /dev/null
> +++ b/cpp.c
> @@ -0,0 +1,27 @@
> +#include <stdio.h>
> +#include <libgen.h>
> +
> +#include "str.h"
> +#include "xmalloc.h"
> +
> +int cpp_exec(char *in_file, char *out_file, size_t out_len)
> +{
> +     char cmd[256], *dir, *base;
> +     char *a = xstrdup(in_file);
> +     char *b = xstrdup(in_file);
> +     int ret = 0;
> +
> +     dir = dirname(a);
> +     base = basename(b);
> +
> +     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;
> +
> +     xfree(a);
> +     xfree(b);
> +     return ret;
> +}
> diff --git a/cpp.h b/cpp.h
> new file mode 100644
> index 0000000..ace1024
> --- /dev/null
> +++ b/cpp.h
> @@ -0,0 +1,6 @@
> +#ifndef CPP_H
> +#define CPP_H
> +
> +int cpp_exec(char *in_file, char *out_file, size_t out_len);

I forgot to add 'extern' here, sorry, I will re-send v3 ...

Regards,

-- 
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.

Reply via email to