diff options
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | src/main.cpp | 18 |
2 files changed, 12 insertions, 8 deletions
@@ -13,6 +13,8 @@ Being class and removed the old #define's. * src/resources/resourcemanager.cpp: Fixed a location where a wrong dir-separator was used. + * src/main.cpp: Fixed updates directory not being created on non-unix + systems. Started using PhysFS write support. 2005-07-27 Bjørn Lindeijer <bjorn@lindeijer.nl> diff --git a/src/main.cpp b/src/main.cpp index b2421a07..219df488 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -160,18 +160,20 @@ void init_engine() std::cout << homeDir << " can't be made, but it doesn't exist! Exitting." << std::endl; exit(1); } +#endif - // Creating and checking the ~/.tmw/updates folder existence and rights. - std::string dataUpdateDir = homeDir + "/updates"; - //sprintf(dataUpdateDir, "%s/updates", homeDir); - if ((mkdir(dataUpdateDir.c_str(), S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH) != 0) && - (errno != EEXIST)) - { - std::cout << dataUpdateDir << " can't be made, but it doesn't exist! Exitting." << std::endl; + if (!PHYSFS_setWriteDir(homeDir.c_str())) { + std::cout << homeDir << " couldn't be set as home directory! Exitting." << std::endl; exit(1); } -#endif + // Creating and checking the updates folder existence and rights. + if (!PHYSFS_exists("/updates")) { + if (!PHYSFS_mkdir("/updates")) { + std::cout << homeDir << "/updates can't be made, but it doesn't exist! Exitting." << std::endl; + exit(1); + } + } // Initialize logger logger = new Logger(homeDir + std::string("/tmw.log")); |