diff options
| author | Shlomi Fish <shlomif@shlomifish.org> | 2017-02-23 14:39:39 +0000 |
|---|---|---|
| committer | Shlomi Fish <shlomif@shlomifish.org> | 2017-02-23 14:39:39 +0000 |
| commit | d82d8e6de61b5a3da73af7d7003b8281720c3dc1 (patch) | |
| tree | 50a151920b32f95afd0fa0c04f175322657ebb18 /src/libcroco | |
| parent | Merged. (diff) | |
| parent | Display style attribute properties when object row selected. Allow their dele... (diff) | |
| download | inkscape-d82d8e6de61b5a3da73af7d7003b8281720c3dc1.tar.gz inkscape-d82d8e6de61b5a3da73af7d7003b8281720c3dc1.zip | |
Merged.
(bzr r15369.1.19)
Diffstat (limited to 'src/libcroco')
| -rw-r--r-- | src/libcroco/cr-parser.c | 2 | ||||
| -rw-r--r-- | src/libcroco/cr-parser.h | 2 | ||||
| -rw-r--r-- | src/libcroco/cr-selector.c | 25 |
3 files changed, 27 insertions, 2 deletions
diff --git a/src/libcroco/cr-parser.c b/src/libcroco/cr-parser.c index 544b35ab0..4e50b5402 100644 --- a/src/libcroco/cr-parser.c +++ b/src/libcroco/cr-parser.c @@ -2002,7 +2002,7 @@ cr_parser_parse_simple_sels (CRParser * a_this, *Returns CR_OK upon successful completion, an error *code otherwise. */ -static enum CRStatus +enum CRStatus cr_parser_parse_selector (CRParser * a_this, CRSelector ** a_selector) { diff --git a/src/libcroco/cr-parser.h b/src/libcroco/cr-parser.h index 6dce9439e..24cf5dfe8 100644 --- a/src/libcroco/cr-parser.h +++ b/src/libcroco/cr-parser.h @@ -97,6 +97,8 @@ enum CRStatus cr_parser_set_default_sac_handler (CRParser *a_this) ; enum CRStatus cr_parser_parse_term (CRParser *a_this, CRTerm **a_term) ; +enum CRStatus cr_parser_parse_selector (CRParser * a_this, CRSelector ** a_selector) ; + enum CRStatus cr_parser_parse_expr (CRParser *a_this, CRTerm **a_expr) ; enum CRStatus cr_parser_parse_prio (CRParser *a_this, CRString **a_prio) ; diff --git a/src/libcroco/cr-selector.c b/src/libcroco/cr-selector.c index c56c43fda..f9193feda 100644 --- a/src/libcroco/cr-selector.c +++ b/src/libcroco/cr-selector.c @@ -51,6 +51,19 @@ cr_selector_new (CRSimpleSel * a_simple_sel) return result; } +/** + * cr_selector_parse_from_buf: + * + *@a_char_buf: the buffer to parse. + *@a_enc: the encoding of the input buffer a_char_buf. + * + *Parses a buf for selectors. + * + *Fix Me: parsing will fail for some cases if buf does not end with '{'. + * + *Returns the newly built instance of #CRSelector, or + *NULL in case of failure. + */ CRSelector * cr_selector_parse_from_buf (const guchar * a_char_buf, enum CREncoding a_enc) { @@ -62,7 +75,17 @@ cr_selector_parse_from_buf (const guchar * a_char_buf, enum CREncoding a_enc) a_enc, FALSE); g_return_val_if_fail (parser, NULL); - return NULL; + CRSelector *selector = NULL; + enum CRStatus status = CR_OK; + status = cr_parser_parse_selector (parser, &selector); + + if (status != CR_OK) { + if (selector) { + cr_selector_unref (selector); + selector = NULL; + } + } + return selector; } /** |
