1 ! (c)2012 Joe Groff bsd license
2 USING: alien.data alien.strings io.directories
3 io.encodings.utf16n io.files.temp io.pathnames kernel math
4 memoize specialized-arrays system windows.errors
5 windows.kernel32 windows.ole32 windows.shell32
7 SPECIALIZED-ARRAY: WCHAR
8 IN: io.files.temp.windows
12 : (get-temp-directory) ( -- path )
13 MAX_PATH 1 + dup WCHAR <c-array> [ GetTempPath ] keep
17 : (get-appdata-directory) ( -- path )
19 CSIDL_LOCAL_APPDATA CSIDL_FLAG_CREATE bitor
22 MAX_PATH 1 + WCHAR <c-array>
23 [ SHGetFolderPath ] keep
29 MEMO: (temp-directory) ( -- path )
30 (get-temp-directory) "factorcode.org\\Factor" append-path dup make-directories ;
32 M: windows temp-directory (temp-directory) ;
34 MEMO: (cache-directory) ( -- path )
35 (get-appdata-directory) "factorcode.org\\Factor" append-path dup make-directories ;
37 M: windows cache-directory (cache-directory) ;