summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/execline/background.c2
-rw-r--r--src/execline/backtick.c2
-rw-r--r--src/execline/dollarat.c2
-rw-r--r--src/execline/elgetopt.c2
-rw-r--r--src/execline/emptyenv.c2
-rw-r--r--src/execline/envfile.c2
-rw-r--r--src/execline/exec.c2
-rw-r--r--src/execline/execlineb.c2
-rw-r--r--src/execline/fdblock.c2
-rw-r--r--src/execline/fdmove.c2
-rw-r--r--src/execline/forbacktickx.c2
-rw-r--r--src/execline/forstdin.c8
-rw-r--r--src/execline/forx.c2
-rw-r--r--src/execline/getcwd.c2
-rw-r--r--src/execline/getpid.c2
-rw-r--r--src/execline/heredoc.c2
-rw-r--r--src/execline/if.c2
-rw-r--r--src/execline/ifelse.c2
-rw-r--r--src/execline/ifte.c2
-rw-r--r--src/execline/ifthenelse.c2
-rw-r--r--src/execline/loopwhilex.c2
-rw-r--r--src/execline/multisubstitute.c2
-rw-r--r--src/execline/pipeline.c2
-rw-r--r--src/execline/redirfd.c2
-rw-r--r--src/execline/runblock.c2
-rw-r--r--src/execline/shift.c2
-rw-r--r--src/execline/trap.c4
-rw-r--r--src/execline/tryexec.c2
-rw-r--r--src/execline/wait.c14
-rw-r--r--src/execline/withstdinas.c2
-rw-r--r--src/include-local/exlsn.h16
-rw-r--r--src/include/execline/execline.h6
-rw-r--r--src/libexecline/el_parse.c2
-rw-r--r--src/libexecline/exlsn_define.c2
-rw-r--r--src/libexecline/exlsn_elglob.c2
-rw-r--r--src/libexecline/exlsn_exlp.c2
-rw-r--r--src/libexecline/exlsn_importas.c2
-rw-r--r--src/libexecline/exlsn_main.c2
-rw-r--r--src/libexecline/exlsn_multidefine.c2
-rw-r--r--src/posix/posix-cd.c2
-rw-r--r--src/posix/posix-umask.c2
41 files changed, 61 insertions, 59 deletions
diff --git a/src/execline/background.c b/src/execline/background.c
index b2ebc76..31bffb5 100644
--- a/src/execline/background.c
+++ b/src/execline/background.c
@@ -17,7 +17,7 @@ int main (int argc, char const **argv, char const *const *envp)
   int df = 0 ;
   PROG = "background" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "d", &l) ;
diff --git a/src/execline/backtick.c b/src/execline/backtick.c
index 5c0c7bb..b7cd7cc 100644
--- a/src/execline/backtick.c
+++ b/src/execline/backtick.c
@@ -17,7 +17,7 @@
 
 int main (int argc, char const **argv, char const *const *envp)
 {
-  subgetopt_t localopt = SUBGETOPT_ZERO ;
+  subgetopt localopt = SUBGETOPT_ZERO ;
   int argc1, fdwstat ;
   stralloc value = STRALLOC_ZERO ;
   char const *var ;
diff --git a/src/execline/dollarat.c b/src/execline/dollarat.c
index 1b75027..0b89aa7 100644
--- a/src/execline/dollarat.c
+++ b/src/execline/dollarat.c
@@ -20,7 +20,7 @@ int main (int argc, char const *const *argv)
   int nl = 1 ;
   PROG = "dollarat" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "nd:0", &l) ;
diff --git a/src/execline/elgetopt.c b/src/execline/elgetopt.c
index 7ed6d89..e450038 100644
--- a/src/execline/elgetopt.c
+++ b/src/execline/elgetopt.c
@@ -26,7 +26,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
   if (!uint0_scan(x, &n)) strerr_dieinvalid(100, "#") ;
   nbak = n++ ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     char const *args[n+1] ;
     unsigned int i = 0 ;
     for ( ; i < n ; i++)
diff --git a/src/execline/emptyenv.c b/src/execline/emptyenv.c
index 5f2dfbc..503dce6 100644
--- a/src/execline/emptyenv.c
+++ b/src/execline/emptyenv.c
@@ -44,7 +44,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
   int flagpath = 0, flagcleanup = 0, flagopt = 0, flagpos = 0 ;
   PROG = "emptyenv" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "pcoP", &l) ;
diff --git a/src/execline/envfile.c b/src/execline/envfile.c
index 555e464..dcd85e7 100644
--- a/src/execline/envfile.c
+++ b/src/execline/envfile.c
@@ -141,7 +141,7 @@ int main (int argc, char const *const *argv)
   int strict = 1 ;
   PROG = "envfile" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "iI", &l) ;
diff --git a/src/execline/exec.c b/src/execline/exec.c
index 494716f..d2c1290 100644
--- a/src/execline/exec.c
+++ b/src/execline/exec.c
@@ -16,7 +16,7 @@ int main (int argc, char const **argv, char const *const *envp)
   int dash = 0 ;
   PROG = "exec" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "cla:", &l) ;
diff --git a/src/execline/execlineb.c b/src/execline/execlineb.c
index 5a4bad8..02e8e97 100644
--- a/src/execline/execlineb.c
+++ b/src/execline/execlineb.c
@@ -80,7 +80,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
   unsigned int flagpushenv = 2 ;
   PROG = "execlineb" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "pPqwWc:S:s:", &l) ;
diff --git a/src/execline/fdblock.c b/src/execline/fdblock.c
index 589ab28..b0aefde 100644
--- a/src/execline/fdblock.c
+++ b/src/execline/fdblock.c
@@ -14,7 +14,7 @@ int main (int argc, char const *const *argv)
   int block = 1 ;
   PROG = "fdblock" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "n", &l) ;
diff --git a/src/execline/fdmove.c b/src/execline/fdmove.c
index a9904d0..ef00d19 100644
--- a/src/execline/fdmove.c
+++ b/src/execline/fdmove.c
@@ -14,7 +14,7 @@ int main (int argc, char const *const *argv)
   int flagcopy = 0 ;
   PROG = "fdmove" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "c", &l) ;
diff --git a/src/execline/forbacktickx.c b/src/execline/forbacktickx.c
index 2fc8bb8..2248fe8 100644
--- a/src/execline/forbacktickx.c
+++ b/src/execline/forbacktickx.c
@@ -22,7 +22,7 @@ int main (int argc, char const *const *argv)
   int crunch = 0, chomp = 1, not = 1, par = 0, doimport = 0 ;
   PROG = "forbacktickx" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "pNnCc0d:o:x:Ee", &l) ;
diff --git a/src/execline/forstdin.c b/src/execline/forstdin.c
index bacb1ae..f89ce90 100644
--- a/src/execline/forstdin.c
+++ b/src/execline/forstdin.c
@@ -53,7 +53,7 @@ int main (int argc, char const **argv)
   int crunch = 0, chomp = 1, not = 1, eofcode = 1, doimport = 0 ;
   PROG = "forstdin" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "pNnCc0d:o:x:Ee", &l) ;
@@ -142,11 +142,13 @@ int main (int argc, char const **argv)
   }
   if (pids.s)
   {
+    sigset_t empty ;
+    sigemptyset(&empty) ;
+    sig_block(SIGCHLD) ;
     for (;;)
     {
-      sig_block(SIGCHLD) ;
       if (!pids.len) break ;
-      sig_pause() ;
+      sigsuspend(&empty) ;
     }
   }
   return eofcode ;
diff --git a/src/execline/forx.c b/src/execline/forx.c
index 8e6659b..a11ee16 100644
--- a/src/execline/forx.c
+++ b/src/execline/forx.c
@@ -51,7 +51,7 @@ int main (int argc, char const **argv)
   unsigned int argc1 ;
   PROG = "forx" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "po:x:Ee", &l) ;
diff --git a/src/execline/getcwd.c b/src/execline/getcwd.c
index 2a82924..5912aa9 100644
--- a/src/execline/getcwd.c
+++ b/src/execline/getcwd.c
@@ -18,7 +18,7 @@ int main (int argc, char const *const *argv)
   stralloc sa = STRALLOC_ZERO ;
   PROG = "getcwd" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "Ee", &l) ;
diff --git a/src/execline/getpid.c b/src/execline/getpid.c
index 64866de..9bd7de5 100644
--- a/src/execline/getpid.c
+++ b/src/execline/getpid.c
@@ -18,7 +18,7 @@ int main (int argc, char const *const *argv)
   char fmt[PID_FMT] ;
   PROG = "getpid" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "Ee", &l) ;
diff --git a/src/execline/heredoc.c b/src/execline/heredoc.c
index 15e7ae1..500c6b2 100644
--- a/src/execline/heredoc.c
+++ b/src/execline/heredoc.c
@@ -19,7 +19,7 @@ int main (int argc, char const *const *argv)
   int df = 0 ;
   PROG = "heredoc" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "d", &l) ;
diff --git a/src/execline/if.c b/src/execline/if.c
index 8820dfa..228ada7 100644
--- a/src/execline/if.c
+++ b/src/execline/if.c
@@ -21,7 +21,7 @@ int main (int argc, char const **argv, char const *const *envp)
   unsigned short e = 1 ;
   PROG = "if" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "nXtx:", &l) ;
diff --git a/src/execline/ifelse.c b/src/execline/ifelse.c
index 6346268..b8a4e1f 100644
--- a/src/execline/ifelse.c
+++ b/src/execline/ifelse.c
@@ -19,7 +19,7 @@ int main (int argc, char const **argv, char const *const *envp)
   pid_t pid ;
   PROG = "ifelse" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "nX", &l) ;
diff --git a/src/execline/ifte.c b/src/execline/ifte.c
index 1412bf0..90d05c8 100644
--- a/src/execline/ifte.c
+++ b/src/execline/ifte.c
@@ -20,7 +20,7 @@ int main (int argc, char const **argv, char const *const *envp)
   pid_t pid ;
   PROG = "ifte" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "Xn", &l) ;
diff --git a/src/execline/ifthenelse.c b/src/execline/ifthenelse.c
index 932aed3..a409fe5 100644
--- a/src/execline/ifthenelse.c
+++ b/src/execline/ifthenelse.c
@@ -19,7 +19,7 @@ int main (int argc, char const **argv, char const *const *envp)
   pid_t pid ;
   PROG = "ifthenelse" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "Xs", &l) ;
diff --git a/src/execline/loopwhilex.c b/src/execline/loopwhilex.c
index 5add5e5..acd60ed 100644
--- a/src/execline/loopwhilex.c
+++ b/src/execline/loopwhilex.c
@@ -27,7 +27,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
   size_t nbc = 0 ;
   PROG = "loopwhilex" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "no:x:", &l) ;
diff --git a/src/execline/multisubstitute.c b/src/execline/multisubstitute.c
index c004a41..c9392dc 100644
--- a/src/execline/multisubstitute.c
+++ b/src/execline/multisubstitute.c
@@ -17,7 +17,7 @@ static char const *const commands[] =
   0
 } ;
 
-static exlsnfunc_t_ref const functions[] =
+static exls_func_ref const functions[] =
 {
   &exlsn_define,
   &exlsn_importas,
diff --git a/src/execline/pipeline.c b/src/execline/pipeline.c
index d3e99dd..922a769 100644
--- a/src/execline/pipeline.c
+++ b/src/execline/pipeline.c
@@ -19,7 +19,7 @@ int main (int argc, char const **argv, char const *const *envp)
   int df = 0, w = 0 ;
   PROG = "pipeline" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "drw", &l) ;
diff --git a/src/execline/redirfd.c b/src/execline/redirfd.c
index d445b1a..d3cdcfa 100644
--- a/src/execline/redirfd.c
+++ b/src/execline/redirfd.c
@@ -20,7 +20,7 @@ int main (int argc, char const *const *argv)
   int changemode = 0 ;
   PROG = "redirfd" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "rwuaxnb", &l) ;
diff --git a/src/execline/runblock.c b/src/execline/runblock.c
index 233e2f3..e6d7fd1 100644
--- a/src/execline/runblock.c
+++ b/src/execline/runblock.c
@@ -25,7 +25,7 @@ int main (int argc, char const *const *argv, char const *const *envp)
   int flagnopop = 0, flagr = 0 ;
   PROG = "runblock" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "Prn:", &l) ;
diff --git a/src/execline/shift.c b/src/execline/shift.c
index 7f2d146..d04f8ad 100644
--- a/src/execline/shift.c
+++ b/src/execline/shift.c
@@ -21,7 +21,7 @@ int main (int argc, char const *const *argv)
   unsigned int i = 0 ;
   PROG = "shift" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "n:b:", &l) ;
diff --git a/src/execline/trap.c b/src/execline/trap.c
index 4b7f283..498b0bd 100644
--- a/src/execline/trap.c
+++ b/src/execline/trap.c
@@ -57,7 +57,7 @@ int main (int argc, char const **argv, char const *const *envp)
   PROG = "trap" ;
 
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "xt:", &l) ;
@@ -120,7 +120,7 @@ int main (int argc, char const **argv, char const *const *envp)
 
   x.fd = selfpipe_init() ;
   if (x.fd < 0) strerr_diefu1sys(111, "selfpipe_init") ;
-  if (selfpipe_trapset(&set) < 0) strerr_diefu1sys(111, "trap signals") ;
+  if (!selfpipe_trapset(&set)) strerr_diefu1sys(111, "trap signals") ;
 
   pids[SKALIBS_NSIG] = child_spawn0(argv[argc1 + 1], argv + argc1 + 1, envp) ;
   if (!pids[SKALIBS_NSIG]) strerr_diefu2sys(111, "spawn ", argv[argc1 + 1]) ;
diff --git a/src/execline/tryexec.c b/src/execline/tryexec.c
index 36e72cd..42fbcb9 100644
--- a/src/execline/tryexec.c
+++ b/src/execline/tryexec.c
@@ -21,7 +21,7 @@ int main (int argc, char const **argv, char const *const *envp)
   int not = 0, dash = 0 ;
   PROG = "tryexec" ;
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "ncla:", &l) ;
diff --git a/src/execline/wait.c b/src/execline/wait.c
index 0cf8d03..ada47a1 100644
--- a/src/execline/wait.c
+++ b/src/execline/wait.c
@@ -22,8 +22,8 @@
 #define USAGE "wait [ -I | -i ] [ -r | -t timeout ] { pids... }"
 #define dieusage() strerr_dieusage(100, USAGE)
 
-typedef int actfunc_t (pid_t *, unsigned int *, int *) ;
-typedef actfunc_t *actfunc_t_ref ;
+typedef int ac_func (pid_t *, unsigned int *, int *) ;
+typedef ac_func *ac_func_ref ;
 
 static inline int waitall (void)
 {
@@ -83,13 +83,13 @@ static inline void handle_signals (void)
   }
 }
 
-static inline int mainloop (tain_t *deadline, int insist, actfunc_t_ref f, pid_t *tab, unsigned int *n)
+static inline int mainloop (tain *deadline, int insist, ac_func_ref f, pid_t *tab, unsigned int *n)
 {
   iopause_fd x = { .events = IOPAUSE_READ } ;
   int res = 0 ;
   x.fd = selfpipe_init() ;
   if (x.fd < 0) strerr_diefu1sys(111, "create selfpipe") ;
-  if (selfpipe_trap(SIGCHLD) < 0) strerr_diefu1sys(111, "trap SIGCHLD") ;
+  if (!selfpipe_trap(SIGCHLD)) strerr_diefu1sys(111, "trap SIGCHLD") ;
   tain_now_set_stopwatch_g() ;
   tain_add_g(deadline, deadline) ;
   while ((*f)(tab, n, &res))
@@ -110,7 +110,7 @@ static inline int mainloop (tain_t *deadline, int insist, actfunc_t_ref f, pid_t
 
 int main (int argc, char const **argv)
 {
-  tain_t tto ;
+  tain tto ;
   int argc1 ;
   int hastimeout = 0 ;
   int insist = 0 ;
@@ -121,7 +121,7 @@ int main (int argc, char const **argv)
   setlocale(LC_ALL, "") ;  /* but of course, dear POSIX */
 #endif
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     unsigned int t = 0 ;
     for (;;)
     {
@@ -150,7 +150,7 @@ int main (int argc, char const **argv)
   if (!argc1 && !hastimeout) r = waitall() ;
   else
   {
-    actfunc_t_ref f = argc1 ? &waitintab : &waitany ;
+    ac_func_ref f = argc1 ? &waitintab : &waitany ;
     unsigned int n = argc1 ? (unsigned int)argc1 : 1 ;
     pid_t tab[n] ;
     if (argc1)
diff --git a/src/execline/withstdinas.c b/src/execline/withstdinas.c
index cd025bf..64a3697 100644
--- a/src/execline/withstdinas.c
+++ b/src/execline/withstdinas.c
@@ -14,7 +14,7 @@
 
 int main (int argc, char const *const *argv)
 {
-  subgetopt_t localopt = SUBGETOPT_ZERO ;
+  subgetopt localopt = SUBGETOPT_ZERO ;
   stralloc value = STRALLOC_ZERO ;
   int insist = 0, chomp = 1, doimport = 0 ;
   char const *def = 0 ;
diff --git a/src/include-local/exlsn.h b/src/include-local/exlsn.h
index 832a67b..d1f2876 100644
--- a/src/include-local/exlsn.h
+++ b/src/include-local/exlsn.h
@@ -20,18 +20,18 @@ struct exlsn_s
 
 extern void exlsn_free (exlsn_t *) ;
 
-typedef int exlsnfunc_t (int, char const **, char const *const *, exlsn_t *) ;
-typedef exlsnfunc_t *exlsnfunc_t_ref ;
+typedef int exls_func (int, char const **, char const *const *, exlsn_t *) ;
+typedef exls_func *exls_func_ref ;
 	
-extern exlsnfunc_t exlsn_define ;
-extern exlsnfunc_t exlsn_importas ;
-extern exlsnfunc_t exlsn_elglob ;
-extern exlsnfunc_t exlsn_exlp ;
-extern exlsnfunc_t exlsn_multidefine ;
+extern exls_func exlsn_define ;
+extern exls_func exlsn_importas ;
+extern exls_func exlsn_elglob ;
+extern exls_func exlsn_exlp ;
+extern exls_func exlsn_multidefine ;
 
 extern int exlp (unsigned int, char const *const *, exlsn_t *) ;
 extern void el_substandrun (int, char const *const *, char const *const *, exlsn_t const *) gccattr_noreturn ;
 extern void el_substandrun_str (stralloc *, size_t, char const *const *, exlsn_t const *) gccattr_noreturn ;
-extern void exlsn_main (int, char const **, char const *const *, exlsnfunc_t *, char const *) gccattr_noreturn ;
+extern void exlsn_main (int, char const **, char const *const *, exls_func *, char const *) gccattr_noreturn ;
 
 #endif
diff --git a/src/include/execline/execline.h b/src/include/execline/execline.h
index 144283d..a6fc114 100644
--- a/src/include/execline/execline.h
+++ b/src/include/execline/execline.h
@@ -17,10 +17,10 @@
 
 /* Parsing */
 
-typedef int el_chargen_func_t (unsigned char *, void *) ;
-typedef el_chargen_func_t *el_chargen_func_t_ref ;
+typedef int el_chargen_func (unsigned char *, void *) ;
+typedef el_chargen_func *el_chargen_func_ref ;
 
-extern int el_parse (stralloc *, el_chargen_func_t_ref, void *) ;
+extern int el_parse (stralloc *, el_chargen_func_ref, void *) ;
 extern int el_parse_from_string (stralloc *, char const *) ;
 extern int el_parse_from_buffer (stralloc *, buffer *) ;
 
diff --git a/src/libexecline/el_parse.c b/src/libexecline/el_parse.c
index 53644ed..b45b776 100644
--- a/src/libexecline/el_parse.c
+++ b/src/libexecline/el_parse.c
@@ -8,7 +8,7 @@
 #include <skalibs/djbunix.h>
 #include <execline/execline.h>
 
-int el_parse (stralloc *sa, el_chargen_func_t_ref next, void *source)
+int el_parse (stralloc *sa, el_chargen_func_ref next, void *source)
 {
   static unsigned char const class[256] = "`aaaaaaaaadaaaaaaaaaaaaaaaaaaaaaafcbffffffffffffjhhhhhhhiifffffffmmmmmmfffffffffffffffffffffeffffggmmmgfffffffkfffkfkfkflffnfoffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ;
   static uint16_t const table[16][16] =
diff --git a/src/libexecline/exlsn_define.c b/src/libexecline/exlsn_define.c
index f2f5c4a..65fcc92 100644
--- a/src/libexecline/exlsn_define.c
+++ b/src/libexecline/exlsn_define.c
@@ -10,7 +10,7 @@
 int exlsn_define (int argc, char const **argv, char const *const *envp, exlsn_t *info)
 {
   eltransforminfo_t si = ELTRANSFORMINFO_ZERO ;
-  subgetopt_t localopt = SUBGETOPT_ZERO ;
+  subgetopt localopt = SUBGETOPT_ZERO ;
   elsubst_t blah ;
   blah.var = info->vars.len ;
   blah.value = info->values.len ;
diff --git a/src/libexecline/exlsn_elglob.c b/src/libexecline/exlsn_elglob.c
index 62734e6..db1bb35 100644
--- a/src/libexecline/exlsn_elglob.c
+++ b/src/libexecline/exlsn_elglob.c
@@ -20,7 +20,7 @@ static int elgloberrfunc (char const *s, int e)
 int exlsn_elglob (int argc, char const **argv, char const *const *envp, exlsn_t *info)
 {
   glob_t pglob ;
-  subgetopt_t localopt = SUBGETOPT_ZERO ;
+  subgetopt localopt = SUBGETOPT_ZERO ;
   elsubst_t blah ;
   int flags = GLOB_NOSORT | GLOB_NOCHECK ;
   unsigned int i = 0 ;
diff --git a/src/libexecline/exlsn_exlp.c b/src/libexecline/exlsn_exlp.c
index cc4ecf6..73c57fe 100644
--- a/src/libexecline/exlsn_exlp.c
+++ b/src/libexecline/exlsn_exlp.c
@@ -6,7 +6,7 @@
 
 int exlsn_exlp (int argc, char const **argv, char const *const *envp, exlsn_t *info)
 {
-  subgetopt_t localopt = SUBGETOPT_ZERO ;
+  subgetopt localopt = SUBGETOPT_ZERO ;
   unsigned int nmin = 0 ;
   int n ;
   for (;;)
diff --git a/src/libexecline/exlsn_importas.c b/src/libexecline/exlsn_importas.c
index f23c055..670b113 100644
--- a/src/libexecline/exlsn_importas.c
+++ b/src/libexecline/exlsn_importas.c
@@ -12,7 +12,7 @@
 int exlsn_importas (int argc, char const **argv, char const *const *envp, exlsn_t *info)
 {
   eltransforminfo_t si = ELTRANSFORMINFO_ZERO ;
-  subgetopt_t localopt = SUBGETOPT_ZERO ;
+  subgetopt localopt = SUBGETOPT_ZERO ;
   elsubst_t blah ;
   char const *defaultval = 0 ;
   char const *x ;
diff --git a/src/libexecline/exlsn_main.c b/src/libexecline/exlsn_main.c
index c7747de..8a923e3 100644
--- a/src/libexecline/exlsn_main.c
+++ b/src/libexecline/exlsn_main.c
@@ -6,7 +6,7 @@
 #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)
+void exlsn_main (int argc, char const **argv, char const *const *envp, exls_func *func, char const *usage)
 {
   exlsn_t info = EXLSN_ZERO ;
   int r = (*func)(argc, argv, envp, &info) ;
diff --git a/src/libexecline/exlsn_multidefine.c b/src/libexecline/exlsn_multidefine.c
index 38147e6..9108810 100644
--- a/src/libexecline/exlsn_multidefine.c
+++ b/src/libexecline/exlsn_multidefine.c
@@ -10,7 +10,7 @@
 int exlsn_multidefine (int argc, char const **argv, char const *const *envp, exlsn_t *info)
 {
   eltransforminfo_t si = ELTRANSFORMINFO_ZERO ;
-  subgetopt_t localopt = SUBGETOPT_ZERO ;
+  subgetopt localopt = SUBGETOPT_ZERO ;
   size_t varbase = info->vars.len ;
   size_t valbase = info->values.len ;
   size_t pos = valbase ;
diff --git a/src/posix/posix-cd.c b/src/posix/posix-cd.c
index ee0b338..3fd7d7c 100644
--- a/src/posix/posix-cd.c
+++ b/src/posix/posix-cd.c
@@ -31,7 +31,7 @@ int main (int argc, char const **argv)
   setlocale(LC_ALL, "") ; /* yeah, as if */
 
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "LP", &l) ;
diff --git a/src/posix/posix-umask.c b/src/posix/posix-umask.c
index 16d7f4f..f477365 100644
--- a/src/posix/posix-umask.c
+++ b/src/posix/posix-umask.c
@@ -154,7 +154,7 @@ int main (int argc, char const **argv)
   setlocale(LC_ALL, "") ;  /* totally supported, I swear */
 
   {
-    subgetopt_t l = SUBGETOPT_ZERO ;
+    subgetopt l = SUBGETOPT_ZERO ;
     for (;;)
     {
       int opt = subgetopt_r(argc, argv, "S", &l) ;