diff src/filelist.c @ 217:5bdab7ed4bcd

use quoted_value everywhere simplify parsing of multiple quoted values on one line
author nadvornik
date Mon, 31 Mar 2008 21:09:36 +0000
parents f2b439c7f973
children cce347409480
line wrap: on
line diff
--- a/src/filelist.c	Mon Mar 31 07:29:03 2008 +0000
+++ b/src/filelist.c	Mon Mar 31 21:09:36 2008 +0000
@@ -371,10 +371,14 @@
 		{
 		FilterEntry *fe = work->data;
 		work = work->next;
+		
+		gchar *extensions = escquote_value(fe->extensions);
+		gchar *description = escquote_value(fe->description);
 
-		fprintf(f, "filter_ext: \"%s%s\" \"%s\" \"%s\"\n", (fe->enabled) ? "" : "#",
-			fe->key, fe->extensions,
-			(fe->description) ? fe->description : "");
+		fprintf(f, "filter_ext: \"%s%s\" %s %s\n", (fe->enabled) ? "" : "#",
+			fe->key, extensions, description);
+		g_free(extensions);
+		g_free(description);
 		}
 }
 
@@ -388,40 +392,11 @@
 
 	if (!text || text[0] != '"') return;
 
-	key = quoted_value(text);
+	key = quoted_value(text, &p);
 	if (!key) return;
 
-	p = text;
-	p++;
-	while (*p != '"' && *p != '\0') p++;
-	if (*p != '"')
-		{
-		g_free(key);
-		return;
-		}
-	p++;
-	while (*p != '"' && *p != '\0') p++;
-	if (*p != '"')
-		{
-		g_free(key);
-		return;
-		}
-
-	ext = quoted_value(p);
-
-	p++;
-	while (*p != '"' && *p != '\0') p++;
-	if (*p == '"') p++;
-	while (*p != '"' && *p != '\0') p++;
-
-	if (*p == '"')
-		{
-		desc = quoted_value(p);
-		}
-	else
-		{
-		desc = NULL;
-		}
+	ext = quoted_value(p, &p);
+	desc = quoted_value(p, &p);
 
 	if (key && key[0] == '#')
 		{
@@ -502,7 +477,7 @@
 	sidecar_ext_list = NULL;
 	
 	if (quoted)
-		value = quoted_value(text);
+		value = quoted_value(text, NULL);
 	else
 		value = g_strdup(text);