~ 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