1 /* ISC license. */
2
3 #include <skalibs/bytestr.h>
4 #include <skalibs/strerr2.h>
5 #include <skalibs/genalloc.h>
6 #include <execline/execline.h>
7 #include "exlsn.h"
8
exlsn_main(int argc,char const ** argv,char const * const * envp,exlsnfunc_t * func,char const * usage)9 void exlsn_main (int argc, char const **argv, char const *const *envp, exlsnfunc_t *func, char const *usage)
10 {
11 exlsn_t info = EXLSN_ZERO ;
12 int r = (*func)(argc, argv, envp, &info) ;
13 if (r < 0) switch (r)
14 {
15 case -4 : strerr_dief1x(100, "empty block") ;
16 case -3 : strerr_dieusage(100, usage) ;
17 case -2 : strerr_dief1x(111, "bad substitution key") ;
18 case -1 : strerr_diefu1sys(111, "complete exlsn function") ;
19 default : strerr_diefu2x(111, "complete exlsn function", ": unknown error") ;
20 }
21 el_substandrun(argc-r, argv+r, envp, &info) ;
22 }
23