1 ! (c)2012 Joe Groff bsd license
2 USING: alien.data alien.strings io.directories
3 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
19 : get-appdata-directory ( -- path )
21 CSIDL_LOCAL_APPDATA CSIDL_FLAG_CREATE bitor
24 MAX_PATH 1 + WCHAR <c-array>
25 [ SHGetFolderPath ] keep
26 swap check-ole32-error alien>native-string ;
28 M: windows default-temp-directory
29 get-temp-directory "factorcode.org\\Factor" append-path ;
31 M: windows default-cache-directory
32 get-appdata-directory "factorcode.org\\Factor" append-path ;