diff --git a/src/rishka_syscalls.cpp b/src/rishka_syscalls.cpp index bc39e71..7d05a26 100644 --- a/src/rishka_syscalls.cpp +++ b/src/rishka_syscalls.cpp @@ -280,8 +280,12 @@ long RishkaSyscall::Sys::randomImpl() { bool RishkaSyscall::Sys::changeDir(RishkaVM* vm) { auto dir = vm->getPointerParam(0); - - dir = rishka_sanitize_path(dir); + if(dir == "~") { + vm->setWorkingDirectory(F("/")); + return true; + } + + dir = rishka_sanitize_path(vm->getWorkingDirectory(), dir); if(!SD.exists(dir)) return false;