summaryrefslogtreecommitdiff
path: root/gtk/gtkcssstringvalue.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2017-09-18 10:55:36 -0400
committerMatthias Clasen <mclasen@redhat.com>2017-09-18 14:26:57 -0400
commit6420dd934fafb770d7fdccadb86bd01dd6fc710c (patch)
tree39d46ea27f7426d2b822e8515a63b6cad9cbd5e3 /gtk/gtkcssstringvalue.c
parentedaaefcb744f994cbe17e4b348898540b5c71da1 (diff)
downloadgtk+-6420dd934fafb770d7fdccadb86bd01dd6fc710c.tar.gz
Add an auxiliary ident parsing function
This lets us conveniently create ident values from multiple candidates.
Diffstat (limited to 'gtk/gtkcssstringvalue.c')
-rw-r--r--gtk/gtkcssstringvalue.c28
1 files changed, 28 insertions, 0 deletions
diff --git a/gtk/gtkcssstringvalue.c b/gtk/gtkcssstringvalue.c
index c12eb7661b..ad29def9a1 100644
--- a/gtk/gtkcssstringvalue.c
+++ b/gtk/gtkcssstringvalue.c
@@ -203,6 +203,34 @@ _gtk_css_ident_value_try_parse (GtkCssParser *parser)
return _gtk_css_ident_value_new_take (ident);
}
+GtkCssValue *
+_gtk_css_ident_value_try (GtkCssParser *parser,
+ const char *ident,
+ ...)
+{
+ va_list args;
+ const char *name;
+ GtkCssValue *value = NULL;
+
+ name = ident;
+
+ va_start (args, ident);
+
+ while (name)
+ {
+ if (_gtk_css_parser_try (parser, name, TRUE))
+ {
+ value = _gtk_css_ident_value_new (name);
+ break;
+ }
+ ident = va_arg (args, const char *);
+ }
+
+ va_end (args);
+
+ return value;
+}
+
const char *
_gtk_css_ident_value_get (const GtkCssValue *value)
{