Split system out of call/cc.
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sat, 13 Nov 1993 02:43:18 +0000 (02:43 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sat, 13 Nov 1993 02:43:18 +0000 (02:43 +0000)
v7/src/runtime/site.scm.unix

index 5612560f45eaab1c20c11b7ff1408567a9d57f50..8c0dc0bdfe8f0fec0feaa5ca15f1d5137b1fe879 100644 (file)
@@ -1,6 +1,6 @@
 #| -*-Scheme-*-
 
-$Id: site.scm.unix,v 1.11 1993/11/13 02:21:15 gjr Exp $
+$Id: site.scm.unix,v 1.12 1993/11/13 02:43:18 gjr Exp $
 
 Copyright (c) 1988-93 Massachusetts Institute of Technology
 
@@ -55,19 +55,22 @@ MIT in each case. |#
                     (loop (cdr args)))))))))
     (if *call/cc-warn?*
        (warn "call/cc: Invoking the C compiler:" command-line))
-    (let ((inside (working-directory-pathname))
-         (outside false))
-      (dynamic-wind
-       (lambda ()
-        (stop-thread-timer)
-        (set! outside ((ucode-primitive working-directory-pathname 0)))
-        ((ucode-primitive set-working-directory-pathname! 1) inside))
-       (lambda ()
-        ((ucode-primitive system) command-line))
-       (lambda ()
-        (set! inside ((ucode-primitive working-directory-pathname 0)))
-        ((ucode-primitive set-working-directory-pathname! 1) outside)
-        (start-thread-timer))))))
+    (system command-line)))
+
+(define (system command-line)
+  (let ((inside (working-directory-pathname))
+       (outside false))
+    (dynamic-wind
+     (lambda ()
+       (stop-thread-timer)
+       (set! outside ((ucode-primitive working-directory-pathname 0)))
+       ((ucode-primitive set-working-directory-pathname! 1) inside))
+     (lambda ()
+       ((ucode-primitive system) command-line))
+     (lambda ()
+       (set! inside ((ucode-primitive working-directory-pathname 0)))
+       ((ucode-primitive set-working-directory-pathname! 1) outside)
+       (start-thread-timer)))))
 
 ;;; Normalization of various directory structures.