cssparser: Drop _gtk_css_parser_has_prefix()
Replace it with has_ident/has_function. The old function is a typical string matching API, not a tokenizing one.
This commit is contained in:
@@ -316,7 +316,7 @@ static GtkCssValue *
|
||||
gtk_css_calc_value_parse_value (GtkCssParser *parser,
|
||||
GtkCssNumberParseFlags flags)
|
||||
{
|
||||
if (_gtk_css_parser_has_prefix (parser, "calc"))
|
||||
if (gtk_css_parser_has_function (parser, "calc"))
|
||||
{
|
||||
_gtk_css_parser_error (parser, "Nested calc() expressions are not allowed.");
|
||||
return NULL;
|
||||
|
||||
@@ -209,8 +209,16 @@ _gtk_css_ease_value_can_parse (GtkCssParser *parser)
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (parser_values); i++)
|
||||
{
|
||||
if (_gtk_css_parser_has_prefix (parser, parser_values[i].name))
|
||||
return TRUE;
|
||||
if (parser_values[i].is_function)
|
||||
{
|
||||
if (gtk_css_parser_has_function (parser, parser_values[i].name))
|
||||
return TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gtk_css_parser_has_ident (parser, parser_values[i].name))
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
|
||||
@@ -509,7 +509,7 @@ gtk_css_image_get_parser_type (GtkCssParser *parser)
|
||||
|
||||
for (i = 0; i < G_N_ELEMENTS (image_types); i++)
|
||||
{
|
||||
if (_gtk_css_parser_has_prefix (parser, image_types[i].prefix))
|
||||
if (gtk_css_parser_has_function (parser, image_types[i].prefix))
|
||||
return image_types[i].type_func ();
|
||||
}
|
||||
|
||||
|
||||
@@ -130,14 +130,14 @@ gboolean
|
||||
gtk_css_number_value_can_parse (GtkCssParser *parser)
|
||||
{
|
||||
return _gtk_css_parser_has_number (parser)
|
||||
|| _gtk_css_parser_has_prefix (parser, "calc");
|
||||
|| gtk_css_parser_has_function (parser, "calc");
|
||||
}
|
||||
|
||||
GtkCssValue *
|
||||
_gtk_css_number_value_parse (GtkCssParser *parser,
|
||||
GtkCssNumberParseFlags flags)
|
||||
{
|
||||
if (_gtk_css_parser_has_prefix (parser, "calc"))
|
||||
if (gtk_css_parser_has_function (parser, "calc"))
|
||||
return gtk_css_calc_value_parse (parser, flags);
|
||||
|
||||
return gtk_css_dimension_value_parse (parser, flags);
|
||||
|
||||
@@ -90,15 +90,6 @@ _gtk_css_parser_free (GtkCssParser *parser)
|
||||
g_slice_free (GtkCssParser, parser);
|
||||
}
|
||||
|
||||
gboolean
|
||||
_gtk_css_parser_has_prefix (GtkCssParser *parser,
|
||||
const char *prefix)
|
||||
{
|
||||
g_return_val_if_fail (GTK_IS_CSS_PARSER (parser), FALSE);
|
||||
|
||||
return g_ascii_strncasecmp (parser->data, prefix, strlen (prefix)) == 0;
|
||||
}
|
||||
|
||||
guint
|
||||
_gtk_css_parser_get_line (GtkCssParser *parser)
|
||||
{
|
||||
@@ -634,6 +625,21 @@ gtk_css_parser_has_token (GtkCssParser *parser,
|
||||
}
|
||||
}
|
||||
|
||||
gboolean
|
||||
gtk_css_parser_has_ident (GtkCssParser *parser,
|
||||
const char *ident)
|
||||
{
|
||||
gsize len;
|
||||
|
||||
g_return_val_if_fail (GTK_IS_CSS_PARSER (parser), FALSE);
|
||||
g_return_val_if_fail (ident != NULL, FALSE);
|
||||
|
||||
len = strlen (ident);
|
||||
|
||||
return g_ascii_strncasecmp (parser->data, ident, len) == 0 &&
|
||||
parser->data[len] != '(';
|
||||
}
|
||||
|
||||
gboolean
|
||||
gtk_css_parser_has_function (GtkCssParser *parser,
|
||||
const char *name)
|
||||
|
||||
@@ -62,10 +62,10 @@ GFile * _gtk_css_parser_get_file (GtkCssParser *parser
|
||||
GFile * _gtk_css_parser_get_file_for_path (GtkCssParser *parser,
|
||||
const char *path);
|
||||
|
||||
gboolean _gtk_css_parser_has_prefix (GtkCssParser *parser,
|
||||
const char *prefix);
|
||||
gboolean gtk_css_parser_has_token (GtkCssParser *parser,
|
||||
GtkCssTokenType token_type);
|
||||
gboolean gtk_css_parser_has_ident (GtkCssParser *parser,
|
||||
const char *name);
|
||||
gboolean gtk_css_parser_has_function (GtkCssParser *parser,
|
||||
const char *name);
|
||||
|
||||
|
||||
@@ -1036,7 +1036,7 @@ parse_selector_pseudo_class_nth_child (GtkCssParser *parser,
|
||||
}
|
||||
a *= multiplier;
|
||||
}
|
||||
else if (_gtk_css_parser_has_prefix (parser, "n"))
|
||||
else if (gtk_css_parser_has_ident (parser, "n"))
|
||||
{
|
||||
a = multiplier;
|
||||
}
|
||||
|
||||
@@ -261,7 +261,7 @@ parse_border_image (GtkCssShorthandProperty *shorthand,
|
||||
do
|
||||
{
|
||||
if (values[0] == NULL &&
|
||||
(_gtk_css_parser_has_prefix (parser, "none") ||
|
||||
(gtk_css_parser_has_ident (parser, "none") ||
|
||||
_gtk_css_image_can_parse (parser)))
|
||||
{
|
||||
GtkCssImage *image;
|
||||
@@ -507,7 +507,7 @@ parse_one_background (GtkCssShorthandProperty *shorthand,
|
||||
{
|
||||
/* the image part */
|
||||
if (values[0] == NULL &&
|
||||
(_gtk_css_parser_has_prefix (parser, "none") ||
|
||||
(gtk_css_parser_has_ident (parser, "none") ||
|
||||
_gtk_css_image_can_parse (parser)))
|
||||
{
|
||||
GtkCssImage *image;
|
||||
|
||||
Reference in New Issue
Block a user