diff options
Diffstat (limited to 'main/Windows/CoclSystemDependent.icl')
-rw-r--r-- | main/Windows/CoclSystemDependent.icl | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/main/Windows/CoclSystemDependent.icl b/main/Windows/CoclSystemDependent.icl index dc1d17b..867bcd2 100644 --- a/main/Windows/CoclSystemDependent.icl +++ b/main/Windows/CoclSystemDependent.icl @@ -1,6 +1,9 @@ // this is for Windows implementation module CoclSystemDependent +import StdEnv +import code from "cDirectory.obj", library "directory_library" // Windows + PathSeparator :== ';' DirectorySeparator @@ -13,3 +16,27 @@ SystemDependentDevices SystemDependentInitialIO :: [a] SystemDependentInitialIO = [] + +ensureCleanSystemFilesExists :: !String !*Files -> (!Bool, !*Files) +// returned bool: now there is such a subfolder +ensureCleanSystemFilesExists path env + # path_c_string = path +++ "\0" + (err_code, env) = createDirectoryC path_c_string env + = (err_code==M_NoDirError || err_code==M_AlreadyExists, env) + +createDirectoryC :: !String !*env -> (!Int, !*env) +createDirectoryC _ _ + = code + { + ccall createDirectoryC "S:I:A" + } + +// createDirectoryC returns the following error codes: +M_NoDirError :== 0 +M_OtherDirError :== -1 +M_DoesntExist :== -2 +M_BadName :== -3 +M_NotEnoughSpace :== -4 +M_AlreadyExists :== -5 +M_NoPermission :== -6 + |