From 81caf032f4f0c852c57eb95a2d049cc8ec964c44 Mon Sep 17 00:00:00 2001 From: Björn Steinbrink Date: Thu, 28 Jul 2005 17:51:41 +0000 Subject: Fixed updates directory not being created on non-unix systems. --- ChangeLog | 2 ++ src/main.cpp | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index dbc057c3..3ef8ae12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 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")); -- cgit v1.2.3-70-g09d2