~ chicken-core (master) 0f2a9170b3d132098b38b860c921a04ad03dfafd
commit 0f2a9170b3d132098b38b860c921a04ad03dfafd
Author: felix <felix@call-with-current-continuation.org>
AuthorDate: Tue Feb 17 21:37:28 2026 +0100
Commit: felix <felix@call-with-current-continuation.org>
CommitDate: Tue Feb 17 21:37:28 2026 +0100
ignore ENOENT in deletion-phase when using delete-directory
diff --git a/file.scm b/file.scm
index 9211359f..f45f0964 100644
--- a/file.scm
+++ b/file.scm
@@ -242,7 +242,8 @@ EOF
(lambda (name #!optional recursive)
(define (rmdir dir)
(let ((sname (##sys#make-c-string dir)))
- (unless (fx= 0 (##core#inline "C_rmdir" sname))
+ (when (and (not (fx= 0 (##core#inline "C_rmdir" sname)))
+ (not (fx= (##sys#update-errno) (foreign-value "ENOENT" int))))
(posix-error #:file-error 'delete-directory "cannot delete directory" dir))))
(##sys#check-string name 'delete-directory)
(if recursive
Trap