summaryrefslogtreecommitdiff
path: root/src/libexecline/exlsn_main.c
diff options
context:
space:
mode:
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) ;
+}