on master help sign in
fix with MKSTR
c9e8cf9doofin
libs/prelude/Prelude/File.idr+4−2
@@ -377,5 +377,7 @@ changeDir dir
377 pure (ok == 0)
377 pure (ok == 0)
378
378
379export
379export
380−currentDir : IO String
380+currentDir : IO String
381+currentDir = do
381−currentDir = foreign FFI_C "idris_currentDir" (IO String)
382+ MkRaw s <- foreign FFI_C "idris_currentDir" (IO (Raw String))
383+ pure s
rts/idris_stdfgn.c+3−3
@@ -260,10 +260,10 @@ VAL idris_getString(VM* vm, void* buffer) {
260 return str;
260 return str;
261}
261}
262
262
263−char* idris_currentDir() {
263+VAL idris_currentDir() {
264 char cwd[1024];
264 char cwd[1024];
265 if (getcwd(cwd, sizeof(cwd)) != NULL)
265 if (getcwd(cwd, sizeof(cwd)) != NULL)
266− return cwd;
266+ return MKSTRlen(get_vm(),cwd,1024);
267 else
267 else
268− return "getcwd() error";
268+ return MKSTR(get_vm(),"getcwd() error");
269}
269}
rts/idris_stdfgn.h+1−1
@@ -55,6 +55,6 @@ VAL idris_time();
55
55
56void idris_forceGC();
56void idris_forceGC();
57
57
58−char* idris_currentDir();
58+VAL idris_currentDir();
59
59
60#endif
60#endif