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