[gtk+] css: Split out a common function
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] css: Split out a common function
- Date: Mon, 5 May 2014 14:10:46 +0000 (UTC)
commit b356d814106bd33448a141423b4059e60db9b377
Author: Benjamin Otte <otte redhat com>
Date: Thu May 1 19:47:58 2014 +0200
css: Split out a common function
It's used in two places already, and Iwant to use it in a third one.
gtk/gtkcssparser.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
gtk/gtkcssparserprivate.h | 5 +++++
gtk/gtkcssstringvalue.c | 38 ++------------------------------------
gtk/gtkcssstylefuncs.c | 32 +-------------------------------
4 files changed, 52 insertions(+), 67 deletions(-)
---
diff --git a/gtk/gtkcssparser.c b/gtk/gtkcssparser.c
index ab38fc9..16505a3 100644
--- a/gtk/gtkcssparser.c
+++ b/gtk/gtkcssparser.c
@@ -1012,3 +1012,47 @@ _gtk_css_parser_resync (GtkCssParser *parser,
gtk_css_parser_resync_internal (parser, sync_at_semicolon, TRUE, terminator);
}
+
+void
+_gtk_css_print_string (GString *str,
+ const char *string)
+{
+ gsize len;
+
+ g_return_if_fail (str != NULL);
+ g_return_if_fail (string != NULL);
+
+ g_string_append_c (str, '"');
+
+ do {
+ len = strcspn (string, "\"\n\r\f");
+ g_string_append_len (str, string, len);
+ 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;
+ case '\\':
+ g_string_append (str, "\\\\");
+ break;
+ default:
+ g_assert_not_reached ();
+ break;
+ }
+ } while (*string);
+
+ g_string_append_c (str, '"');
+}
+
diff --git a/gtk/gtkcssparserprivate.h b/gtk/gtkcssparserprivate.h
index ea6a09c..5bc2ad6 100644
--- a/gtk/gtkcssparserprivate.h
+++ b/gtk/gtkcssparserprivate.h
@@ -97,6 +97,11 @@ void _gtk_css_parser_resync (GtkCssParser *parser
gboolean sync_at_semicolon,
char terminator);
+/* XXX: Find better place to put it? */
+void _gtk_css_print_string (GString *str,
+ const char *string);
+
+
G_END_DECLS
#endif /* __GTK_CSS_PARSER_PRIVATE_H__ */
diff --git a/gtk/gtkcssstringvalue.c b/gtk/gtkcssstringvalue.c
index f97b512..11a893a 100644
--- a/gtk/gtkcssstringvalue.c
+++ b/gtk/gtkcssstringvalue.c
@@ -65,47 +65,13 @@ static void
gtk_css_value_string_print (const GtkCssValue *value,
GString *str)
{
- char *string = value->string;
- gsize len;
-
- if (string == NULL)
+ if (value->string == NULL)
{
g_string_append (str, "none");
return;
}
- g_string_append_c (str, '"');
-
- do {
- len = strcspn (string, "\"\n\r\f");
- g_string_append_len (str, string, len);
- 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;
- case '\\':
- g_string_append (str, "\\\\");
- break;
- default:
- g_assert_not_reached ();
- break;
- }
- } while (*string);
-
- g_string_append_c (str, '"');
+ _gtk_css_print_string (str, value->string);
}
static void
diff --git a/gtk/gtkcssstylefuncs.c b/gtk/gtkcssstylefuncs.c
index 426d3ee..9bb5406 100644
--- a/gtk/gtkcssstylefuncs.c
+++ b/gtk/gtkcssstylefuncs.c
@@ -89,37 +89,7 @@ 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, '"');
+ _gtk_css_print_string (str, string);
}
/*** IMPLEMENTATIONS ***/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]