Create path to file if not exists
authorenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 8 Feb 2010 19:27:58 +0000 (19:27 +0000)
committerenglebass <englebass@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Mon, 8 Feb 2010 19:27:58 +0000 (19:27 +0000)
Fixes bug #513

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/efreet@45990 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/efreet_ini.c

index 3b7bcca..7d4482c 100644 (file)
@@ -29,6 +29,8 @@ extern "C"
 void *alloca (size_t);
 #endif
 
+#include <Ecore_File.h>
+
 #include "Efreet.h"
 #include "efreet_private.h"
 
@@ -302,9 +304,17 @@ efreet_ini_free(Efreet_Ini *ini)
 EAPI int
 efreet_ini_save(Efreet_Ini *ini, const char *file)
 {
+    char *dir;
     FILE *f;
     if (!ini || !ini->data) return 0;
 
+    dir = ecore_file_dir_get(file);
+    if (!ecore_file_mkpath(dir))
+    {
+        free(dir);
+        return 0;
+    }
+    free(dir);
     f = fopen(file, "wb");
     if (!f) return 0;
     eina_hash_foreach(ini->data, efreet_ini_section_save, f);