summaryrefslogtreecommitdiff
path: root/src/parse/properties
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2009-08-22 09:33:04 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2009-08-22 09:33:04 +0000
commit758b01f92c0d8e1cdd966a5127e267efd0fe6391 (patch)
treeadcb0d6e0a09c2745630ac2520416da513d1eb03 /src/parse/properties
parent64ffb54faffc493ff1cd35943a89d62d08183317 (diff)
downloadlibcss-758b01f92c0d8e1cdd966a5127e267efd0fe6391.tar.gz
libcss-758b01f92c0d8e1cdd966a5127e267efd0fe6391.tar.bz2
It turns out that using magic values for text-align is simpler than having an entirely new property for html alignment.
svn path=/trunk/libcss/; revision=9387
Diffstat (limited to 'src/parse/properties')
-rw-r--r--src/parse/properties/properties.c3
-rw-r--r--src/parse/properties/properties.h3
-rw-r--r--src/parse/properties/text.c96
3 files changed, 18 insertions, 84 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;
-}
-