Add idris_chdir to stdfgn
commit8c669559e8466b67c6597a74f52a78c8eebd8c90
authorEdwin Brady <ecb10@st-andrews.ac.uk>
dateSun 11 Mar 2018, 17:03 (9 years ago)
parent36eff70
libs/prelude/Prelude/File.idr+1−1
@@ -326,5 +326,5 @@ createDir d
326326export
327327changeDir : String -> IO Bool
328328changeDir dir
329− = do ok <- foreign FFI_C "chdir" (String -> IO Int) dir
329+ = do ok <- foreign FFI_C "idris_chdir" (String -> IO Int) dir
330330 pure (ok == 0)
rts/idris_stdfgn.c+5
@@ -9,6 +9,7 @@
99#include <stdio.h>
1010#include <time.h>
1111#include <dirent.h>
12+#include <unistd.h>
1213
1314#ifdef _WIN32
1415int win_fpoll(void* h);
@@ -104,6 +105,10 @@ int idris_mkdir(char* dname) {
104105#endif
105106}
106107
108+int idris_chdir(char* dname) {
109+ return chdir(dname);
110+}
111+
107112int idris_dirError(void *dptr) {
108113 return ((DirInfo*)dptr)->error;
109114}
rts/idris_stdfgn.h+1
@@ -21,6 +21,7 @@ char* idris_nextDirEntry(void* h);
2121
2222// Create a directory; return 0 on success or -1 on failure
2323int idris_mkdir(char* dname);
24+int idris_chdir(char* dname);
2425
2526// Return 0 if ok, or -1 if there was an error with the given directory
2627// (like ferror)