mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2025-01-14 22:30:22 +00:00
styleproperty: Factor out the string print function
We print strings in lots of places.
This commit is contained in:
parent
b5544f5514
commit
8d77fcb2d5
@ -56,6 +56,53 @@ register_conversion_function (GType type,
|
|||||||
g_hash_table_insert (print_funcs, GSIZE_TO_POINTER (type), print);
|
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 ***/
|
/*** IMPLEMENTATIONS ***/
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
@ -313,16 +360,6 @@ double_value_parse (GtkCssParser *parser,
|
|||||||
return TRUE;
|
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
|
static void
|
||||||
double_value_print (const GValue *value,
|
double_value_print (const GValue *value,
|
||||||
GString *string)
|
GString *string)
|
||||||
@ -372,39 +409,7 @@ static void
|
|||||||
string_value_print (const GValue *value,
|
string_value_print (const GValue *value,
|
||||||
GString *str)
|
GString *str)
|
||||||
{
|
{
|
||||||
const char *string;
|
string_append_string (str, g_value_get_string (value));
|
||||||
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, '"');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
Loading…
Reference in New Issue
Block a user