diff --git a/basis/io/directories/windows/windows.factor b/basis/io/directories/windows/windows.factor index 76cc8f33f0..ec76156775 100644 --- a/basis/io/directories/windows/windows.factor +++ b/basis/io/directories/windows/windows.factor @@ -48,7 +48,8 @@ M: windows delete-directory ( path -- ) RemoveDirectory win32-error=0/f ; : find-first-file ( path WIN32_FIND_DATA -- WIN32_FIND_DATA HANDLE ) - [ nip ] [ FindFirstFile ] 2bi check-invalid-handle ; + [ nip ] [ FindFirstFile ] 2bi + [ INVALID_HANDLE_VALUE = [ win32-error-string throw ] when ] keep ; : find-next-file ( HANDLE WIN32_FIND_DATA -- WIN32_FIND_DATA/f ) [ nip ] [ FindNextFile ] 2bi 0 = [ diff --git a/basis/io/files/info/windows/windows.factor b/basis/io/files/info/windows/windows.factor index 90d17a03d5..71f8e06f69 100644 --- a/basis/io/files/info/windows/windows.factor +++ b/basis/io/files/info/windows/windows.factor @@ -42,7 +42,8 @@ TUPLE: windows-file-info < file-info-tuple attributes ; : find-first-file-stat ( path -- WIN32_FIND_DATA ) WIN32_FIND_DATA [ - FindFirstFile check-invalid-handle + FindFirstFile + [ INVALID_HANDLE_VALUE = [ win32-error ] when ] keep FindClose win32-error=0/f ] keep ;