fix `in-directory'

Closes PR 13163
This commit is contained in:
Matthew Flatt 2012-10-04 06:40:08 -06:00
parent 683e72e9e3
commit b4b723df4e
2 changed files with 14 additions and 2 deletions

View File

@ -1970,10 +1970,12 @@
(call-with-continuation-prompt
(lambda ()
(define (reply v)
(let/cc k
(call/cc
(lambda (k)
(abort-current-continuation
in-directory-tag
(lambda () (cons (lambda () v) k)))))
(lambda () (cons (lambda () v) k))))
in-directory-tag))
(let loop ([dir (path->complete-path (or dir (current-directory)))]
[prefix dir])
(for ([i (in-list (directory-list dir))])

View File

@ -1544,6 +1544,16 @@
(delete-directory sub)
(delete-directory/files tmp))
(let ()
(define tmp (build-path (build-path (find-system-path 'temp-dir))
(format "in-dir-tmp-dir~a" (random 1000))))
(define sub (build-path tmp "sub"))
(make-directory* tmp)
(make-directory* sub)
(test (list sub) 'in-directory (for/list ([v (in-directory tmp)]) v))
(delete-directory sub)
(delete-directory/files tmp))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(report-errs)