~ 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