From 36c6674db35445d6c72f0f520b4abf9ef15b4da9 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 27 Feb 2017 19:15:04 +0300 Subject: Add own base dir in VirtFsDir. --- src/fs/virtfsdir.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'src/fs/virtfsdir.cpp') diff --git a/src/fs/virtfsdir.cpp b/src/fs/virtfsdir.cpp index 3950aa18c..d27355d40 100644 --- a/src/fs/virtfsdir.cpp +++ b/src/fs/virtfsdir.cpp @@ -50,6 +50,7 @@ namespace { std::vector mEntries; std::string mWriteDir; + std::string mBaseDir; bool mPermitLinks = false; VirtFsFuncs funcs; } // namespace @@ -252,8 +253,21 @@ namespace VirtFsDir mEntries.clear(); } - void init() +#if defined(__native_client__) + void init(const std::string &restrict name A_UNUSED) { + mBaseDir = "/"; +#elif defined(ANDROID) + void init(const std::string &restrict name A_UNUSED) + { + mBaseDir = getRealPath("."); +#else // defined(__native_client__) + + void init(const std::string &restrict name) + { + mBaseDir = getRealPath(getFileDir(name)); +#endif // defined(__native_client__) + initFuncs(&funcs); } @@ -268,6 +282,11 @@ namespace VirtFsDir ptr->eof = &VirtFsDir::eof; } + const char *getBaseDir() + { + return mBaseDir.c_str(); + } + std::string getRealDir(const std::string &restrict filename) { if (checkPath(filename) == false) -- cgit v1.2.3-70-g09d2