diff --git a/lib/chibi/process.scm b/lib/chibi/process.scm index 0d4c0d4f..cdb14af7 100644 --- a/lib/chibi/process.scm +++ b/lib/chibi/process.scm @@ -68,11 +68,16 @@ (let ((pid (fork))) (cond ((zero? pid) - (execute cmd (cons cmd args)) - (execute-returned cmd)) + (let ((cmd ((if (pair? cmd) append cons) cmd args))) + (execute (car cmd) cmd) + (execute-returned cmd))) (else (waitpid pid 0))))) +(define (system? cmd . args) + (let ((res (apply system cmd args))) + (and (pair? res) (zero? (cadr res))))) + (define (call-with-process-io command proc) (define (set-non-blocking! fd) (cond-expand diff --git a/lib/chibi/process.sld b/lib/chibi/process.sld index 84b58cb4..40d9849d 100644 --- a/lib/chibi/process.sld +++ b/lib/chibi/process.sld @@ -1,6 +1,6 @@ (define-library (chibi process) - (export exit sleep alarm %fork fork kill execute waitpid system + (export exit sleep alarm %fork fork kill execute waitpid system system? process-command-line process-running? set-signal-action! make-signal-set signal-set? signal-set-contains?