1 ! Copyright (C) 2012 Joe Groff.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: alien.data alien.strings io.directories
4 io.files.temp io.pathnames kernel math
5 memoize specialized-arrays system windows.errors
6 windows.kernel32 windows.ole32 windows.shell32
8 SPECIALIZED-ARRAY: WCHAR
9 IN: io.files.temp.windows
13 : get-temp-directory ( -- path )
14 MAX_PATH 1 + dup WCHAR <c-array> [ GetTempPath ] keep
20 : get-appdata-directory ( -- path )
22 CSIDL_LOCAL_APPDATA CSIDL_FLAG_CREATE bitor
25 MAX_PATH 1 + WCHAR <c-array>
26 [ SHGetFolderPath ] keep
27 swap check-ole32-error alien>native-string ;
29 M: windows default-temp-directory
30 get-temp-directory "factorcode.org\\Factor" append-path ;
32 M: windows default-cache-directory
33 get-appdata-directory "factorcode.org\\Factor" append-path ;