2007-11-06 20:44:45 -05:00
|
|
|
USING: alien alien.c-types combinators io io.backend io.buffers
|
|
|
|
io.files io.nonblocking io.windows kernel libc math namespaces
|
|
|
|
prettyprint sequences strings threads threads.private
|
|
|
|
windows windows.kernel32 io.windows.ce.backend ;
|
|
|
|
IN: windows.ce.files
|
|
|
|
|
2008-04-01 20:51:49 -04:00
|
|
|
! M: windows-ce-io normalize-path ( string -- string )
|
2007-11-06 20:44:45 -05:00
|
|
|
! dup 1 tail* CHAR: \\ = [ "*" append ] [ "\\*" append ] if ;
|
|
|
|
|
2007-11-23 20:17:40 -05:00
|
|
|
M: windows-ce-io CreateFile-flags ( DWORD -- DWORD )
|
|
|
|
FILE_ATTRIBUTE_NORMAL bitor ;
|
2007-11-06 20:44:45 -05:00
|
|
|
M: windows-ce-io FileArgs-overlapped ( port -- f ) drop f ;
|
|
|
|
|
2007-11-21 01:18:46 -05:00
|
|
|
: finish-read ( port status bytes-ret -- )
|
|
|
|
swap [ drop port-errored ] [ swap n>buffer ] if ;
|
|
|
|
|
2007-11-06 20:44:45 -05:00
|
|
|
M: win32-file wince-read
|
2007-11-21 01:18:46 -05:00
|
|
|
drop
|
|
|
|
dup make-FileArgs dup setup-read ReadFile zero?
|
|
|
|
swap FileArgs-lpNumberOfBytesRet *uint dup zero? [
|
|
|
|
2drop t swap set-port-eof?
|
2007-11-06 20:44:45 -05:00
|
|
|
] [
|
2007-11-21 01:18:46 -05:00
|
|
|
finish-read
|
2007-11-06 20:44:45 -05:00
|
|
|
] if ;
|
|
|
|
|
|
|
|
M: win32-file wince-write ( port port-handle -- )
|
|
|
|
drop dup make-FileArgs dup setup-write WriteFile zero? [
|
|
|
|
drop port-errored
|
|
|
|
] [
|
2007-11-07 14:01:45 -05:00
|
|
|
FileArgs-lpNumberOfBytesRet *uint
|
2007-11-09 03:01:45 -05:00
|
|
|
swap buffer-consume
|
2007-11-06 20:44:45 -05:00
|
|
|
] if ;
|