Update of /cvsroot/ufraw/ufraw
In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv23649

Modified Files:
        ufraw_conf.c 
Log Message:
Add feature request #289: Support XDG basedir specification. Based on patch by 
Lev Babiev.

Index: ufraw_conf.c
===================================================================
RCS file: /cvsroot/ufraw/ufraw/ufraw_conf.c,v
retrieving revision 1.196
retrieving revision 1.197
diff -u -d -r1.196 -r1.197
--- ufraw_conf.c        1 Jan 2014 06:00:23 -0000       1.196
+++ ufraw_conf.c        25 Aug 2014 14:45:09 -0000      1.197
@@ -766,7 +766,7 @@
 int conf_load(conf_data *c, const char *IDFilename)
 {
     char *confFilename, line[max_path], *locale;
-    const char *hd;
+    const char *xdgconf;
     FILE *in;
     GMarkupParser parser = {
         &conf_parse_start, &conf_parse_end,
@@ -782,10 +782,13 @@
     else
         c->ufobject = ufraw_image_new();
     if (IDFilename == NULL) {
-        hd = uf_get_home_dir();
-        confFilename = g_build_filename(hd, ".ufrawrc", NULL);
+        confFilename = g_build_filename(uf_get_home_dir(), ".ufrawrc", NULL);
+        if (!g_file_test(confFilename, G_FILE_TEST_IS_REGULAR))
+            if ((xdgconf = g_get_user_config_dir()))
+                confFilename = g_build_filename(xdgconf, "ufrawrc", NULL);
+
         in = g_fopen(confFilename, "r");
-        /* We don't mind if ~/.ufrawrc does not exist. */
+        /* We don't mind if confFilename does not exist. */
         if (in == NULL) {
             g_free(confFilename);
             return UFRAW_SUCCESS;
@@ -1278,10 +1281,13 @@
     uf_reset_locale(locale);
     if (confBuffer == NULL) {
         char *confFilename;
+        const char *xdgconf;
         FILE *out;
         if (IDFilename == NULL) {
-            const char *hd = uf_get_home_dir();
-            confFilename = g_build_filename(hd, ".ufrawrc", NULL);
+            confFilename = g_build_filename(uf_get_home_dir(), ".ufrawrc", 
NULL);
+            if (!g_file_test(confFilename, G_FILE_TEST_IS_REGULAR))
+                if ((xdgconf = g_get_user_config_dir()))
+                    confFilename = g_build_filename(xdgconf, "ufrawrc", NULL);
         } else
             confFilename = g_strdup(IDFilename);
         if ((out = g_fopen(confFilename, "w")) == NULL) {


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to