summaryrefslogtreecommitdiff
path: root/src/parse
diff options
context:
space:
mode:
Diffstat (limited to 'src/parse')
-rw-r--r--src/parse/properties/properties.c3
-rw-r--r--src/parse/properties/properties.h3
-rw-r--r--src/parse/properties/text.c96
-rw-r--r--src/parse/propstrings.c4
-rw-r--r--src/parse/propstrings.h6
5 files changed, 24 insertions, 88 deletions
diff --git a/src/parse/properties/properties.c b/src/parse/properties/properties.c
index 0cde6c6..79ad1a5 100644
--- a/src/parse/properties/properties.c
+++ b/src/parse/properties/properties.c
@@ -126,7 +126,6 @@ const css_prop_handler property_handlers[LAST_PROP + 1 - FIRST_PROP] =
parse_widows,
parse_width,
parse_word_spacing,
- parse_z_index,
- parse_libcss_align
+ parse_z_index
};
diff --git a/src/parse/properties/properties.h b/src/parse/properties/properties.h
index dd96ac3..0dc750a 100644
--- a/src/parse/properties/properties.h
+++ b/src/parse/properties/properties.h
@@ -367,9 +367,6 @@ css_error parse_word_spacing(css_language *c,
css_error parse_z_index(css_language *c,
const parserutils_vector *vector, int *ctx,
css_style **result);
-css_error parse_libcss_align(css_language *c,
- const parserutils_vector *vector, int *ctx,
- css_style **result);
#endif
diff --git a/src/parse/properties/text.c b/src/parse/properties/text.c
index d3c81b5..45b9b5a 100644
--- a/src/parse/properties/text.c
+++ b/src/parse/properties/text.c
@@ -273,7 +273,8 @@ css_error parse_text_align(css_language *c,
uint32_t opv;
bool match;
- /* IDENT (left, right, center, justify, inherit) */
+ /* IDENT (left, right, center, justify, -libcss-left, -libcss-center,
+ * -libcss-right, inherit) */
ident = parserutils_vector_iterate(vector, ctx);
if (ident == NULL || ident->type != CSS_TOKEN_IDENT) {
*ctx = orig_ctx;
@@ -305,6 +306,21 @@ css_error parse_text_align(css_language *c,
ident->idata, c->strings[JUSTIFY],
&match) == lwc_error_ok && match)) {
value = TEXT_ALIGN_JUSTIFY;
+ } else if ((lwc_context_string_caseless_isequal(
+ c->sheet->dictionary,
+ ident->idata, c->strings[LIBCSS_LEFT],
+ &match) == lwc_error_ok && match)) {
+ value = TEXT_ALIGN_LIBCSS_LEFT;
+ } else if ((lwc_context_string_caseless_isequal(
+ c->sheet->dictionary,
+ ident->idata, c->strings[LIBCSS_CENTER],
+ &match) == lwc_error_ok && match)) {
+ value = TEXT_ALIGN_LIBCSS_CENTER;
+ } else if ((lwc_context_string_caseless_isequal(
+ c->sheet->dictionary,
+ ident->idata, c->strings[LIBCSS_RIGHT],
+ &match) == lwc_error_ok && match)) {
+ value = TEXT_ALIGN_LIBCSS_RIGHT;
} else {
*ctx = orig_ctx;
return CSS_INVALID;
@@ -850,81 +866,3 @@ css_error parse_word_spacing(css_language *c,
return CSS_OK;
}
-/**
- * Parse -libcss-align
- *
- * \param c Parsing context
- * \param vector Vector of tokens to process
- * \param ctx Pointer to vector iteration context
- * \param result Pointer to location to receive resulting style
- * \return CSS_OK on success,
- * CSS_NOMEM on memory exhaustion,
- * CSS_INVALID if the input is not valid
- *
- * Post condition: \a *ctx is updated with the next token to process
- * If the input is invalid, then \a *ctx remains unchanged.
- */
-css_error parse_libcss_align(css_language *c,
- const parserutils_vector *vector, int *ctx,
- css_style **result)
-{
- int orig_ctx = *ctx;
- css_error error;
- const css_token *ident;
- uint8_t flags = 0;
- uint16_t value = 0;
- uint32_t opv;
- bool match;
-
- /* IDENT (left, right, center, justify, inherit) */
- ident = parserutils_vector_iterate(vector, ctx);
- if (ident == NULL || ident->type != CSS_TOKEN_IDENT) {
- *ctx = orig_ctx;
- return CSS_INVALID;
- }
-
- if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[INHERIT],
- &match) == lwc_error_ok && match)) {
- flags |= FLAG_INHERIT;
- } else if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[LEFT],
- &match) == lwc_error_ok && match)) {
- value = LIBCSS_ALIGN_LEFT;
- } else if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[RIGHT],
- &match) == lwc_error_ok && match)) {
- value = LIBCSS_ALIGN_RIGHT;
- } else if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[CENTER],
- &match) == lwc_error_ok && match)) {
- value = LIBCSS_ALIGN_CENTER;
- } else if ((lwc_context_string_caseless_isequal(
- c->sheet->dictionary,
- ident->idata, c->strings[JUSTIFY],
- &match) == lwc_error_ok && match)) {
- value = LIBCSS_ALIGN_JUSTIFY;
- } else {
- *ctx = orig_ctx;
- return CSS_INVALID;
- }
-
- opv = buildOPV(CSS_PROP_LIBCSS_ALIGN, flags, value);
-
- /* Allocate result */
- error = css_stylesheet_style_create(c->sheet, sizeof(opv), result);
- if (error != CSS_OK) {
- *ctx = orig_ctx;
- return error;
- }
-
- /* Copy the bytecode to it */
- memcpy((*result)->bytecode, &opv, sizeof(opv));
-
- return CSS_OK;
-}
-
diff --git a/src/parse/propstrings.c b/src/parse/propstrings.c
index 28a1189..699b750 100644
--- a/src/parse/propstrings.c
+++ b/src/parse/propstrings.c
@@ -157,7 +157,6 @@ const stringmap_entry stringmap[LAST_KNOWN] = {
{ "width", SLEN("width") },
{ "word-spacing", SLEN("word-spacing") },
{ "z-index", SLEN("z-index") },
- { "-libcss-align", SLEN("-libcss-align") },
{ "inherit", SLEN("inherit") },
{ "important", SLEN("important") },
@@ -331,6 +330,9 @@ const stringmap_entry stringmap[LAST_KNOWN] = {
{ "line-through", SLEN("line-through") },
{ "blink", SLEN("blink") },
{ "rgb", SLEN("rgb") },
+ { "-libcss-left", SLEN("-libcss-left") },
+ { "-libcss-center", SLEN("-libcss-center") },
+ { "-libcss-right", SLEN("-libcss-right") },
{ "aliceblue", SLEN("aliceblue") },
{ "antiquewhite", SLEN("antiquewhite") },
diff --git a/src/parse/propstrings.h b/src/parse/propstrings.h
index fe125cc..f33fe78 100644
--- a/src/parse/propstrings.h
+++ b/src/parse/propstrings.h
@@ -55,9 +55,9 @@ enum {
SPEAK_PUNCTUATION, SPEAK, SPEECH_RATE, STRESS, TABLE_LAYOUT,
TEXT_ALIGN, TEXT_DECORATION, TEXT_INDENT, TEXT_TRANSFORM, TOP,
UNICODE_BIDI, VERTICAL_ALIGN, VISIBILITY, VOICE_FAMILY, VOLUME,
- WHITE_SPACE, WIDOWS, WIDTH, WORD_SPACING, Z_INDEX, LIBCSS_ALIGN,
+ WHITE_SPACE, WIDOWS, WIDTH, WORD_SPACING, Z_INDEX,
- LAST_PROP = LIBCSS_ALIGN,
+ LAST_PROP = Z_INDEX,
/* Other keywords */
INHERIT, IMPORTANT, NONE, BOTH, FIXED, SCROLL, TRANSPARENT,
@@ -84,7 +84,7 @@ enum {
NE_RESIZE, NW_RESIZE, N_RESIZE, SE_RESIZE, SW_RESIZE, S_RESIZE,
W_RESIZE, TEXT, WAIT, HELP, PROGRESS, SERIF, SANS_SERIF, CURSIVE,
FANTASY, MONOSPACE, MALE, FEMALE, CHILD, MIX, UNDERLINE, OVERLINE,
- LINE_THROUGH, BLINK, RGB,
+ LINE_THROUGH, BLINK, RGB, LIBCSS_LEFT, LIBCSS_CENTER, LIBCSS_RIGHT,
/* Named colours */
FIRST_COLOUR,