Merge pull request #4526 from doofin/master
add `get current directory name`
commit86126a72fad0fa3dc3679a4422c1bd215da9fae9
authorNiklas Larsson <metaniklas@gmail.com>
dateWed 25 Jul 2018, 23:59 (8 years ago)
parentc6c087f6a55558
libs/prelude/Prelude/File.idr+6
@@ -375,3 +375,9 @@ changeDir : String -> IO Bool
375375changeDir dir
376376 = do ok <- foreign FFI_C "idris_chdir" (String -> IO Int) dir
377377 pure (ok == 0)
378+
379+export
380+currentDir : IO String
381+currentDir = do
382+ MkRaw s <- foreign FFI_C "idris_currentDir" (IO (Raw String))
383+ pure s
rts/idris_stdfgn.c+8
@@ -259,3 +259,11 @@ VAL idris_getString(VM* vm, void* buffer) {
259259 free(sb);
260260 return str;
261261}
262+
263+VAL idris_currentDir() {
264+ char cwd[1024];
265+ if (getcwd(cwd, sizeof(cwd)) != NULL)
266+ return MKSTR(get_vm(),cwd);
267+ else
268+ return MKSTR(get_vm(),"");
269+}
rts/idris_stdfgn.h+2
@@ -55,4 +55,6 @@ VAL idris_time();
5555
5656void idris_forceGC();
5757
58+VAL idris_currentDir();
59+
5860#endif