From d955cb5e0700c6d2b6b26cb210b5a176d22d4235 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Mon, 30 Nov 2015 13:00:11 +0100 Subject: [PATCH] common: Add header file and build the new code. * common/Makefile.am (common_sources): Add new files. * common/sh-exectool.h: New file. Signed-off-by: Justus Winter --- common/Makefile.am | 3 ++- common/sh-exectool.c | 2 +- common/sh-exectool.h | 35 +++++++++++++++++++++++++++++++++++ 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 common/sh-exectool.h diff --git a/common/Makefile.am b/common/Makefile.am index c02c60e04..1db4ec919 100644 --- a/common/Makefile.am +++ b/common/Makefile.am @@ -87,7 +87,8 @@ common_sources = \ helpfile.c \ mkdir_p.c mkdir_p.h \ strlist.c strlist.h \ - call-gpg.c call-gpg.h + call-gpg.c call-gpg.h \ + sh-exectool.c sh-exectool.h if HAVE_W32_SYSTEM common_sources += w32-reg.c w32-afunix.c w32-afunix.h diff --git a/common/sh-exectool.c b/common/sh-exectool.c index ab1809552..504900b06 100644 --- a/common/sh-exectool.c +++ b/common/sh-exectool.c @@ -25,9 +25,9 @@ #include #include -#include "g13-syshelp.h" #include #include "i18n.h" +#include "logging.h" #include "membuf.h" #include "exechelp.h" #include "sysutils.h" diff --git a/common/sh-exectool.h b/common/sh-exectool.h new file mode 100644 index 000000000..bbdbb0342 --- /dev/null +++ b/common/sh-exectool.h @@ -0,0 +1,35 @@ +/* sh-exectool.h - Utility functions to execute a helper tool + * Copyright (C) 2015 g10 Code GmbH + * + * This file is part of GnuPG. + * + * GnuPG is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * GnuPG is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see . + */ + +#ifndef GNUPG_COMMON_SH_EXECTOOL_H +#define GNUPG_COMMON_SH_EXECTOOL_H + +/* Run the program PGMNAME with the command line arguments given in + the NULL terminates array ARGV. If INPUT_STRING is not NULL it + will be fed to stdin of the process. stderr is logged using + log_info and the process' stdout is returned in a newly malloced + buffer RESULT with the length stored at RESULTLEN if not given as + NULL. A hidden Nul is appended to the output. On error NULL is + stored at RESULT, a diagnostic is printed, and an error code + returned. */ +gpg_error_t sh_exec_tool (const char *pgmname, const char *argv[], + const char *input_string, + char **result, size_t *resultlen); + +#endif /* GNUPG_COMMON_SH_EXECTOOL_H */