changeset 664:87ef546de419

Create configuration directory path if it does not yet exist when saving configuration.
author Matti Hamalainen <ccr@tnsp.org>
date Fri, 12 Feb 2016 03:03:51 +0200
parents 0b81e5fdc7b5
children 23d16d9cdf96
files main.c
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/main.c	Fri Feb 12 03:03:17 2016 +0200
+++ b/main.c	Fri Feb 12 03:03:51 2016 +0200
@@ -96,6 +96,7 @@
         optLogDaily = FALSE,
         optOnlyFriendPrv = FALSE;
 
+char *setHomeDir = NULL, *setConfigDir = NULL, *setProxyURI = NULL;
 th_llist_t *setIgnoreList = NULL,
         *setFriendList = NULL,
         *setIdleMessages = NULL;
@@ -1271,6 +1272,13 @@
     int cfgfd = -1;
 #endif
 
+    if (!th_mkdir_path(setConfigDir, 0))
+    {
+        printMsgQ(currWin, "Could not create configuration file directory '%s'.\n",
+            setConfigDir);
+        goto error;
+    }
+
     if ((ctx = th_io_new(&th_stdio_io_ops, setConfigFile)) == NULL)
     {
         printMsgQ(currWin, "Could not initialize I/O context for configuration file writing!\n");
@@ -1947,7 +1955,6 @@
     nn_editbuf_t *editBuf = nn_editbuf_new(NN_TMPBUF_SIZE);
     nn_editstate_t editState;
     th_cfgitem_t *tmpcfg;
-    char *setHomeDir = NULL, *setConfigDir = NULL, *setProxyURI = NULL;
 
     memset(editHistBuf, 0, sizeof(editHistBuf));
     clearEditState(&editState);