Author: post
Date: 2010-03-28 17:11:27 +0200 (Sun, 28 Mar 2010)
New Revision: 3271

Modified:
   trunk/librawstudio/rs-utils.c
Log:
Make dot_dir behave, even if it is given a directory.

Modified: trunk/librawstudio/rs-utils.c
===================================================================
--- trunk/librawstudio/rs-utils.c       2010-03-28 12:09:47 UTC (rev 3270)
+++ trunk/librawstudio/rs-utils.c       2010-03-28 15:11:27 UTC (rev 3271)
@@ -347,7 +347,11 @@
        /* FIXME: Port rs_conf to library */
 //     rs_conf_get_boolean(CONF_CACHEDIR_IS_LOCAL, &dotdir_is_local);
 
-       directory = g_path_get_dirname(filename);
+       if (g_file_test(filename, G_FILE_TEST_IS_DIR))
+               directory = g_strdup(filename);
+       else
+               directory = g_path_get_dirname(filename);
+       
        if (dotdir_is_local)
        {
                dotdir = g_string_new(g_get_home_dir());
@@ -382,13 +386,16 @@
        {
                g_string_free(dotdir, TRUE);
                g_free(directory);
-               gchar* md5 = rs_file_checksum(filename);
-               ret = g_strdup_printf("%s/read-only-cache/%s", 
rs_confdir_get(), md5);
-               g_free(md5);
-               if (!g_file_test(ret, (G_FILE_TEST_EXISTS | 
G_FILE_TEST_IS_DIR)))
+               if (g_file_test(filename, G_FILE_TEST_IS_REGULAR))
                {
-                       if (g_mkdir_with_parents(ret, 0700) != 0)
-                               ret = NULL;
+                       gchar* md5 = rs_file_checksum(filename);
+                       ret = g_strdup_printf("%s/read-only-cache/%s", 
rs_confdir_get(), md5);
+                       g_free(md5);
+                       if (!g_file_test(ret, (G_FILE_TEST_EXISTS | 
G_FILE_TEST_IS_DIR)))
+                       {
+                               if (g_mkdir_with_parents(ret, 0700) != 0)
+                                       ret = NULL;
+                       }
                }
                return ret;
        }


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to