diff src/filelist.c @ 170:9a56e3d13e67

basic sidecar files configuration via preferences dialog
author nadvornik
date Sun, 23 Dec 2007 21:24:48 +0000
parents 05bf5d364dba
children d18b94f1ca80
line wrap: on
line diff
--- a/src/filelist.c	Sun Dec 23 20:28:50 2007 +0000
+++ b/src/filelist.c	Sun Dec 23 21:24:48 2007 +0000
@@ -416,7 +416,7 @@
 	return sidecar_ext_list;
 }
 
-void sidecar_ext_parse(const gchar *text)
+void sidecar_ext_parse(const gchar *text, gint quoted)
 {
 	GList *work;
 	gchar *value;
@@ -431,7 +431,10 @@
 	g_list_free(sidecar_ext_list);
 	sidecar_ext_list = NULL;
 	
-	value = quoted_value(text);
+	if (quoted)
+		value = quoted_value(text);
+	else
+		value = g_strdup(text);
 
 	if (value == NULL) return;
 
@@ -443,22 +446,28 @@
 void sidecar_ext_write(FILE *f)
 {
 	GList *work;
-	fprintf(f, "\nsidecar_ext: \"");
-	
+	fprintf(f, "\nsidecar_ext: \"%s\"\n", sidecar_ext_to_string());
+}
+
+char *sidecar_ext_to_string()
+{
+	GList *work;
+	GString *str = g_string_new("");
+
 	work = sidecar_ext_list;
 	while (work)
 		{
 		gchar *ext = work->data;
 		work = work->next;
-		fprintf(f, "%s%s", ext, work ? ";" : "");
+		g_string_append(str, ext);
+		if (work) g_string_append(str, ";");
 		}
-	fprintf(f, "\"\n");
-
+	return g_string_free(str, FALSE);
 }
 
 void sidecar_ext_add_defaults()
 {
-	sidecar_ext_parse("\".jpg;.cr2;.nef;.crw\"");
+	sidecar_ext_parse(".jpg;.cr2;.nef;.crw", FALSE);
 }
 
 /*