factor/basis/io/files/temp/windows/windows.factor

38 lines
1020 B
Factor
Raw Normal View History

! (c)2012 Joe Groff bsd license
2012-03-31 20:11:38 -04:00
USING: alien.data alien.strings io.directories
io.encodings.utf16n io.files.temp io.pathnames kernel math
memoize specialized-arrays system windows.errors
windows.kernel32 windows.ole32 windows.shell32
windows.types ;
SPECIALIZED-ARRAY: WCHAR
IN: io.files.temp.windows
<PRIVATE
: (get-temp-directory) ( -- path )
2012-03-31 20:11:38 -04:00
MAX_PATH 1 + dup WCHAR <c-array> [ GetTempPath ] keep
swap win32-error=0/f
utf16n alien>string ;
: (get-appdata-directory) ( -- path )
f
CSIDL_LOCAL_APPDATA CSIDL_FLAG_CREATE bitor
f
0
2012-03-31 20:11:38 -04:00
MAX_PATH 1 + WCHAR <c-array>
[ SHGetFolderPath ] keep
2012-03-31 20:11:38 -04:00
swap ole32-error
utf16n alien>string ;
PRIVATE>
MEMO: (temp-directory) ( -- path )
(get-temp-directory) "factorcode.org\\Factor" append-path dup make-directories ;
M: windows temp-directory (temp-directory) ;
MEMO: (cache-directory) ( -- path )
(get-appdata-directory) "factorcode.org\\Factor" append-path dup make-directories ;
M: windows cache-directory (cache-directory) ;