~ chicken-core (chicken-5) 2cb3cd5ed5eacf40223533a64217ca838063f891


commit 2cb3cd5ed5eacf40223533a64217ca838063f891
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Thu Jun 16 03:39:55 2011 -0400
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Thu Jun 16 03:39:55 2011 -0400

    use cps in %process to avoid warning

diff --git a/posixunix.scm b/posixunix.scm
index 5974b324..82adbbb2 100644
--- a/posixunix.scm
+++ b/posixunix.scm
@@ -1999,8 +1999,8 @@ EOF
 (define process)
 (define process*)
 
-(let ([%process
-        (lambda (loc err? cmd args env)
+(let ((%process
+        (lambda (loc err? cmd args env k)
           (let ([chkstrlst
                  (lambda (lst)
                    (##sys#check-list lst loc)
@@ -2012,16 +2012,19 @@ EOF
                   (set! args (##sys#shell-command-arguments cmd))
                   (set! cmd (##sys#shell-command)) ) )
             (when env (chkstrlst env))
-            (receive [in out pid err] (##sys#process loc cmd args env #t #t err?)
-              (if err?
-                  (values in out pid err)
-                  (values in out pid) ) ) ) )] )
+            (##sys#call-with-values 
+	     (lambda () (##sys#process loc cmd args env #t #t err?))
+	     k)))))
   (set! process
     (lambda (cmd #!optional args env)
-      (%process 'process #f cmd args env) ))
+      (%process 
+       'process #f cmd args env
+       (lambda (i o p e) (values i o p)))))
   (set! process*
     (lambda (cmd #!optional args env)
-      (%process 'process* #t cmd args env) )) )
+      (%process
+       'process* #t cmd args env
+       values))))
 
 
 ;;; chroot:
Trap