[gtk+] Add an auxiliary ident parsing function
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Add an auxiliary ident parsing function
- Date: Mon, 18 Sep 2017 18:29:27 +0000 (UTC)
commit 6420dd934fafb770d7fdccadb86bd01dd6fc710c
Author: Matthias Clasen <mclasen redhat com>
Date: Mon Sep 18 10:55:36 2017 -0400
Add an auxiliary ident parsing function
This lets us conveniently create ident values from
multiple candidates.
gtk/gtkcssstringvalue.c | 28 ++++++++++++++++++++++++++++
gtk/gtkcssstringvalueprivate.h | 3 +++
2 files changed, 31 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkcssstringvalue.c b/gtk/gtkcssstringvalue.c
index c12eb76..ad29def 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)
{
diff --git a/gtk/gtkcssstringvalueprivate.h b/gtk/gtkcssstringvalueprivate.h
index 5fb703b..0aaa9ec 100644
--- a/gtk/gtkcssstringvalueprivate.h
+++ b/gtk/gtkcssstringvalueprivate.h
@@ -29,6 +29,9 @@ G_BEGIN_DECLS
GtkCssValue * _gtk_css_ident_value_new (const char *ident);
GtkCssValue * _gtk_css_ident_value_new_take (char *ident);
GtkCssValue * _gtk_css_ident_value_try_parse (GtkCssParser *parser);
+GtkCssValue * _gtk_css_ident_value_try (GtkCssParser *parser,
+ const char *ident,
+ ...);
const char * _gtk_css_ident_value_get (const GtkCssValue *ident);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]