about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/execline/backtick.c1
-rw-r--r--src/execline/trap.c7
-rw-r--r--src/libexecline/el_spawn0.c6
-rw-r--r--src/libexecline/el_spawn1.c3
4 files changed, 10 insertions, 7 deletions
diff --git a/src/execline/backtick.c b/src/execline/backtick.c
index 881c06a..06996bb 100644
--- a/src/execline/backtick.c
+++ b/src/execline/backtick.c
@@ -7,6 +7,7 @@
 #include <skalibs/sgetopt.h>
 #include <skalibs/strerr.h>
 #include <skalibs/stralloc.h>
+#include <skalibs/cspawn.h>
 #include <skalibs/djbunix.h>
 #include <skalibs/exec.h>
 
diff --git a/src/execline/trap.c b/src/execline/trap.c
index b409d77..62526ed 100644
--- a/src/execline/trap.c
+++ b/src/execline/trap.c
@@ -13,6 +13,7 @@
 #include <skalibs/iopause.h>
 #include <skalibs/selfpipe.h>
 #include <skalibs/env.h>
+#include <skalibs/cspawn.h>
 #include <skalibs/djbunix.h>
 
 #include <execline/execline.h>
@@ -36,7 +37,7 @@ static inline void trap_action (unsigned int i, char const *const *envp, size_t
       modif[m++] = 0 ;
       if (!env_mergen(newenvp, envlen + 3, envp, envlen, modif, m, 2))
         strerr_diefu1sys(111, "adjust environment for child") ;
-      pids[i] = child_spawn0(argvs[i][0], argvs[i], newenvp) ;
+      pids[i] = cspawn(argvs[i][0], argvs[i], newenvp, CSPAWN_FLAGS_SELFPIPE_FINISH, 0, 0) ;
       if (!pids[i]) strerr_diefu2sys(111, "spawn ", argvs[i][0]) ;
     }
   }
@@ -118,10 +119,10 @@ 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 (x.fd == -1) strerr_diefu1sys(111, "selfpipe_init") ;
   if (!selfpipe_trapset(&set)) strerr_diefu1sys(111, "trap signals") ;
 
-  pids[SKALIBS_NSIG] = child_spawn0(argv[argc1 + 1], argv + argc1 + 1, envp) ;
+  pids[SKALIBS_NSIG] = cspawn(argv[argc1 + 1], argv + argc1 + 1, envp, CSPAWN_FLAGS_SELFPIPE_FINISH, 0, 0) ;
   if (!pids[SKALIBS_NSIG]) strerr_diefu2sys(111, "spawn ", argv[argc1 + 1]) ;
 
  loop:
diff --git a/src/libexecline/el_spawn0.c b/src/libexecline/el_spawn0.c
index 0cfe017..d4265a4 100644
--- a/src/libexecline/el_spawn0.c
+++ b/src/libexecline/el_spawn0.c
@@ -1,6 +1,6 @@
 /* ISC license. */
 
-#include <skalibs/djbunix.h>
+#include <skalibs/cspawn.h>
 
 #include <execline/config.h>
 #include <execline/execline.h>
@@ -10,7 +10,7 @@ pid_t el_spawn0 (char const *prog, char const *const *argv, char const *const *e
   if (!argv[0])
   {
     static char const *const newargv[3] = { EXECLINE_BINPREFIX "exit", "0", 0 } ;
-    return child_spawn0(newargv[0], newargv, 0) ;
+    return cspawn(newargv[0], newargv, envp, 0, 0, 0) ;
   }
-  else return child_spawn0(prog, argv, envp) ;
+  else return cspawn(prog, argv, envp, 0, 0, 00) ;
 }
diff --git a/src/libexecline/el_spawn1.c b/src/libexecline/el_spawn1.c
index 937f1a3..d9a7f87 100644
--- a/src/libexecline/el_spawn1.c
+++ b/src/libexecline/el_spawn1.c
@@ -1,6 +1,7 @@
 /* ISC license. */
 
-#include <skalibs/djbunix.h>
+#include <skalibs/cspawn.h>
+
 #include <execline/config.h>
 #include <execline/execline.h>