pathexec_run(a, b, c);
strerr_dieexec(111, a);
is a reasonably common pattern in execline programs, and since
strerr_dieexec expands to a 11 argument function call (of
strerr_diesys), this ends up generating a lot of code. Provide a
helper to do these two calls.
---
src/include/skalibs/djbunix.h | 1 +
src/libstddjb/pathexec_run_or_die.c | 10 ++++++++++
2 files changed, 11 insertions(+)
create mode 100644 src/libstddjb/pathexec_run_or_die.c
diff --git a/src/include/skalibs/djbunix.h b/src/include/skalibs/djbunix.h
index fb08658..4568891 100644
--- a/src/include/skalibs/djbunix.h
+++ b/src/include/skalibs/djbunix.h
@@ -60,6 +60,7 @@ extern void pathexec_run (char const *, char const *const *,
char const *const *
extern void pathexec0_run (char const *const *, char const *const *) ;
extern void pathexec (char const *const *) ;
extern void pathexec0 (char const *const *) ;
+extern void pathexec_run_or_die (char const *, char const *const *, char const
*const *) gccattr_noreturn ;
#define prot_gid(gid) setgid(gid)
#define prot_uid(uid) setuid(uid)
diff --git a/src/libstddjb/pathexec_run_or_die.c
b/src/libstddjb/pathexec_run_or_die.c
new file mode 100644
index 0000000..a1fafc2
--- /dev/null
+++ b/src/libstddjb/pathexec_run_or_die.c
@@ -0,0 +1,10 @@
+/* ISC license. */
+
+#include <skalibs/djbunix.h>
+#include <skalibs/strerr2.h>
+
+void pathexec_run_or_die (char const *file, char const *const *argv, char
const *const *envp)
+{
+ pathexec_run(file, argv, envp) ;
+ strerr_dieexec(111, file) ;
+}
--
2.1.4