diff --git a/core/src/vfs.sld b/core/src/vfs.sld index 55ddba3..25eab4a 100644 --- a/core/src/vfs.sld +++ b/core/src/vfs.sld @@ -100,13 +100,13 @@ (if (string=? subdir "") vfs (make-vfs - (mapping-map - (lambda (key value) + (mapping-fold + (lambda (key value acc) (cond - ((string=? (car key) subdir) (values (cons "" (cdr key)) value)) - ((string-prefix? subdirprefix (car key)) (values (cons (string-copy (car key) subdirprefixlength) (cdr key)) value)) - (else (values)))) - (make-default-comparator) + ((string=? (car key) subdir) (mapping-set! acc (cons "" (cdr key)) value)) + ((string-prefix? subdirprefix (car key)) (mapping-set! acc (cons (string-copy (car key) subdirprefixlength) (cdr key)) value)) + (else acc))) + (mapping (make-default-comparator)) (vfs-contents vfs))))) ;; Generates a full VFS structure from an on-disk directory.