: (delete-file) ( path -- )
dup DeleteFile 0 = [
GetLastError ERROR_ACCESS_DENIED =
- [ delete-read-only-file ] [ throw-win32-error ] if
+ [ delete-read-only-file ] [ win32-error ] if
] [ drop ] if ;
M: windows delete-file ( path -- )
: handle>file-size ( handle -- n/f )
(handle>file-size) [
GetLastError ERROR_INVALID_FUNCTION =
- [ f ] [ throw-win32-error ] if
+ [ f ] [ win32-error ] if
] unless* ;
ERROR: seek-before-start n ;
0
[ FindFirstStream ] keepd
over INVALID_HANDLE_VALUE = [
- 2drop throw-win32-error
+ 2drop win32-error
] [
1vector swap file-streams-rest
] if ;
dup n>win32-error-string windows-error
] if ;
-: throw-win32-error ( -- * )
- win32-error-string throw ;
-
: check-invalid-handle ( handle -- handle )
dup INVALID_HANDLE_VALUE = [ win32-error ] when ;
expected-io-errors member? ;
: expected-io-error ( error-code -- )
- dup expected-io-error? [
- drop
- ] [
- throw-win32-error
- ] if ;
+ expected-io-error? [ win32-error ] unless ;
: io-error ( return-value -- )
{ 0 f } member? [ GetLastError expected-io-error ] when ;