From bf70e894f195c5d408e3ee26acc2283236349235 Mon Sep 17 00:00:00 2001 From: Bardur Arantsson Date: Thu, 20 Nov 2014 01:38:26 +0100 Subject: Don't lie about path if we fail to auto-create "save" directory --- src/main.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) (limited to 'src') diff --git a/src/main.c b/src/main.c index 66cb3983..b59e11ac 100644 --- a/src/main.c +++ b/src/main.c @@ -88,7 +88,7 @@ bool_ private_check_user_directory(cptr dirpath) * home directory or try to create it if it doesn't exist. * Returns FALSE if all the attempts fail. */ -static bool_ check_create_user_dir(void) +static void init_save_dir(void) { char dirpath[1024]; char versionpath[1024]; @@ -101,7 +101,20 @@ static bool_ check_create_user_dir(void) strcpy(savepath, versionpath); strcat(savepath, "/save"); - return private_check_user_directory(dirpath) && private_check_user_directory(versionpath) && private_check_user_directory(savepath); + if (!private_check_user_directory(dirpath)) + { + quit_fmt("Cannot create directory '%s'", dirpath); + } + + if (!private_check_user_directory(versionpath)) + { + quit_fmt("Cannot create directory '%s'", versionpath); + } + + if (!private_check_user_directory(savepath)) + { + quit_fmt("Cannot create directory '%s'", savepath); + } } @@ -139,22 +152,8 @@ int main(int argc, char *argv[]) /* Acquire the "user name" as a default player name */ user_name(player_name, player_uid); - - /* - * On multiuser systems, users' private directories are - * used to store pref files, chardumps etc. - */ - { - bool_ ret; - - /* Create a directory for the user's files */ - ret = check_create_user_dir(); - - /* Oops */ - if (ret == FALSE) quit("Cannot create directory " PRIVATE_USER_PATH); - } - - + /* Make sure save directory exists */ + init_save_dir(); /* Process the command line arguments */ -- cgit v1.2.3