WITH-REAL-WORKING-DIRECTORY-PATHNAME must really change the
authorGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sat, 29 Jan 1994 22:40:46 +0000 (22:40 +0000)
committerGuillermo J. Rozas <edu/mit/csail/zurich/gjr>
Sat, 29 Jan 1994 22:40:46 +0000 (22:40 +0000)
microcode's working directory pathname.

v7/src/edwin/dos.scm

index df9da490a048038a5facbd6efb44fd1163083d64..75700e04b8e079a8abacd23b420edf59b1be6148 100644 (file)
@@ -1,8 +1,8 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Id: dos.scm,v 1.12 1993/10/26 23:15:25 cph Exp $
+;;;    $Id: dos.scm,v 1.13 1994/01/29 22:40:46 gjr Exp $
 ;;;
-;;;    Copyright (c) 1992-1993 Massachusetts Institute of Technology
+;;;    Copyright (c) 1992-1994 Massachusetts Institute of Technology
 ;;;
 ;;;    This material was developed by the Scheme project at the
 ;;;    Massachusetts Institute of Technology, Department of
@@ -474,18 +474,20 @@ Includes the new backup.  Must be > 0."
   true)
 
 (define (os/quit dir)
-  (without-interrupts
-    (lambda ()
-      (with-real-working-directory-pathname dir %quit))))
+  (with-real-working-directory-pathname dir %quit))
 
 (define (with-real-working-directory-pathname dir thunk)
   (let ((inside dir)
        (outside false))
-    (dynamic-wind
-     (lambda ()
-       (set! outside (working-directory-pathname))
-       (set-working-directory-pathname! inside))
-     thunk
-     (lambda ()
-       (set! inside (working-directory-pathname))
-       (set-working-directory-pathname! outside)))))
\ No newline at end of file
+    (without-interrupts
+      (lambda ()
+       (dynamic-wind
+        (lambda ()
+          (set! outside (working-directory-pathname))
+          (set-working-directory-pathname! inside)
+          ((ucode-primitive set-working-directory-pathname! 1) inside))
+        thunk
+        (lambda ()
+          (set! inside (working-directory-pathname))
+          ((ucode-primitive set-working-directory-pathname! 1) outside)
+          (set-working-directory-pathname! outside)))))))
\ No newline at end of file