]> Pileus Git - ~andy/gtk/commitdiff
styleproperty: Factor out the string print function
authorBenjamin Otte <otte@redhat.com>
Sun, 29 May 2011 03:25:05 +0000 (05:25 +0200)
committerBenjamin Otte <otte@redhat.com>
Thu, 2 Jun 2011 00:03:52 +0000 (02:03 +0200)
We print strings in lots of places.

gtk/gtkstyleproperty.c

index e8cc02f6be94a6d5d35a9c6b3a03dc860dfbef85..91ceae486013f2dfc0d81711eccbcea4723de409 100644 (file)
@@ -56,6 +56,53 @@ register_conversion_function (GType             type,
     g_hash_table_insert (print_funcs, GSIZE_TO_POINTER (type), print);
 }
 
+static void
+string_append_double (GString *string,
+                      double   d)
+{
+  char buf[G_ASCII_DTOSTR_BUF_SIZE];
+
+  g_ascii_dtostr (buf, sizeof (buf), d);
+  g_string_append (string, buf);
+}
+
+static void
+string_append_string (GString    *str,
+                      const char *string)
+{
+  gsize len;
+
+  g_string_append_c (str, '"');
+
+  do {
+    len = strcspn (string, "\"\n\r\f");
+    g_string_append (str, string);
+    string += len;
+    switch (*string)
+      {
+      case '\0':
+        break;
+      case '\n':
+        g_string_append (str, "\\A ");
+        break;
+      case '\r':
+        g_string_append (str, "\\D ");
+        break;
+      case '\f':
+        g_string_append (str, "\\C ");
+        break;
+      case '\"':
+        g_string_append (str, "\\\"");
+        break;
+      default:
+        g_assert_not_reached ();
+        break;
+      }
+  } while (*string);
+
+  g_string_append_c (str, '"');
+}
+
 /*** IMPLEMENTATIONS ***/
 
 static gboolean 
@@ -313,16 +360,6 @@ double_value_parse (GtkCssParser *parser,
   return TRUE;
 }
 
-static void
-string_append_double (GString *string,
-                      double   d)
-{
-  char buf[G_ASCII_DTOSTR_BUF_SIZE];
-
-  g_ascii_dtostr (buf, sizeof (buf), d);
-  g_string_append (string, buf);
-}
-
 static void
 double_value_print (const GValue *value,
                     GString      *string)
@@ -372,39 +409,7 @@ static void
 string_value_print (const GValue *value,
                     GString      *str)
 {
-  const char *string;
-  gsize len;
-
-  string = g_value_get_string (value);
-  g_string_append_c (str, '"');
-
-  do {
-    len = strcspn (string, "\"\n\r\f");
-    g_string_append (str, string);
-    string += len;
-    switch (*string)
-      {
-      case '\0':
-        break;
-      case '\n':
-        g_string_append (str, "\\A ");
-        break;
-      case '\r':
-        g_string_append (str, "\\D ");
-        break;
-      case '\f':
-        g_string_append (str, "\\C ");
-        break;
-      case '\"':
-        g_string_append (str, "\\\"");
-        break;
-      default:
-        g_assert_not_reached ();
-        break;
-      }
-  } while (*string);
-
-  g_string_append_c (str, '"');
+  string_append_string (str, g_value_get_string (value));
 }
 
 static gboolean