summary refs log tree commit diff
path: root/src/libexecline/exlsn_main.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2014-09-18 20:03:23 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2014-09-18 20:03:23 +0000
commitf316a2ed52195135a35e32d7096e876357c48c69 (patch)
tree5f4486b9a5a213a69e66ef574d6bc643a207981c /src/libexecline/exlsn_main.c
downloadexecline-f316a2ed52195135a35e32d7096e876357c48c69.tar.gz
execline-f316a2ed52195135a35e32d7096e876357c48c69.tar.xz
execline-f316a2ed52195135a35e32d7096e876357c48c69.zip
initial commit: rc for execline-2.0.0.0
Diffstat (limited to 'src/libexecline/exlsn_main.c')
-rw-r--r--src/libexecline/exlsn_main.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/libexecline/exlsn_main.c b/src/libexecline/exlsn_main.c
new file mode 100644
index 0000000..e50fc2d
--- /dev/null
+++ b/src/libexecline/exlsn_main.c
@@ -0,0 +1,19 @@
+/* ISC license. */
+
+#include <skalibs/strerr2.h>
+#include <execline/execline.h>
+#include "exlsn.h"
+
+void exlsn_main (int argc, char const **argv, char const *const *envp, exlsnfunc_t *func, char const *usage)
+{
+  exlsn_t info = EXLSN_ZERO ;
+  int r = (*func)(argc, argv, envp, &info) ;
+  if (r < 0) switch (r)
+  {
+    case -3 : strerr_dieusage(100, usage) ;
+    case -2 : strerr_dief1x(111, "bad substitution key") ;
+    case -1 : strerr_diefu1sys(111, "complete exlsn function") ;
+    default : strerr_diefu2x(111, "complete exlsn function", ": unknown error") ;
+  }
+  el_substandrun(argc-r, argv+r, envp, &info) ;
+}