~ chicken-core (chicken-5) 8aea4eb24da31b60c3ce8ffe160e082761e10607
commit 8aea4eb24da31b60c3ce8ffe160e082761e10607 Author: Pietro Cerutti <gahr@gahr.ch> AuthorDate: Mon Jan 6 14:10:24 2025 +0000 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Mon Jan 6 19:46:56 2025 +0100 Fix the return types of a couple of (chicken file) procedures According to the docs, `delete-file*` is supposed to return #t on success. However, it has `delete-file` in tail position, which in turn has `unless` in tail position. I think this was an oversight and `delete-file` should have its argument in tail position instead. The types.db incorrectly declare `delete-directory` as returning a string. Signed-off-by: felix <felix@call-with-current-continuation.org> diff --git a/file.scm b/file.scm index 2a212292..563724d8 100644 --- a/file.scm +++ b/file.scm @@ -228,8 +228,8 @@ EOF (unless (eq? 0 (##core#inline "C_remove" (##sys#make-c-string filename 'delete-file))) (##sys#signal-hook/errno #:file-error (##sys#update-errno) 'delete-file - (##sys#string-append "cannot delete file - " strerror) filename) - filename)) + (##sys#string-append "cannot delete file - " strerror) filename)) + filename) (define (delete-file* file) (and (file-exists? file) (delete-file file))) diff --git a/manual/Module (chicken file) b/manual/Module (chicken file) index e2804508..8fc434a9 100644 --- a/manual/Module (chicken file) +++ b/manual/Module (chicken file) @@ -70,7 +70,7 @@ not exist, an error is signaled. <procedure>(delete-file* STRING)</procedure> -If the file with pathname {{STRING}} exists, it is deleted and {{#t}} +If the file with pathname {{STRING}} exists, it is deleted and {{STRING}} is returned. If the file does not exist, nothing happens and {{#f}} is returned. diff --git a/types.db b/types.db index 5ee90b8f..3d10f564 100644 --- a/types.db +++ b/types.db @@ -1668,9 +1668,9 @@ (chicken.file#create-directory (#(procedure #:clean #:enforce) chicken.file#create-directory (string #!optional *) string)) (chicken.file#create-temporary-directory (#(procedure #:clean #:enforce) chicken.file#create-temporary-directory () string)) (chicken.file#create-temporary-file (#(procedure #:clean #:enforce) chicken.file#create-temporary-file (#!optional string) string)) -(chicken.file#delete-directory (#(procedure #:clean #:enforce) chicken.file#delete-directory (string #!optional *) string)) +(chicken.file#delete-directory (#(procedure #:clean #:enforce) chicken.file#delete-directory (string #!optional *) undefined)) (chicken.file#delete-file (#(procedure #:clean #:enforce) chicken.file#delete-file (string) string)) -(chicken.file#delete-file* (#(procedure #:clean #:enforce) chicken.file#delete-file* (string) *)) +(chicken.file#delete-file* (#(procedure #:clean #:enforce) chicken.file#delete-file* (string) (or false string))) (chicken.file#directory-exists? (#(procedure #:clean #:enforce) chicken.file#directory-exists? (string) (or false string))) (chicken.file#file-exists? (#(procedure #:clean #:enforce) chicken.file#file-exists? (string) (or false string))) (chicken.file#find-files (#(procedure #:enforce) chicken.file#find-files (string #!rest) list))Trap