diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2008-11-25 19:03:57 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2008-11-25 19:03:57 +0000 |
commit | 56378abe781bb755c0e4d69d16035ea861b7c1e1 (patch) | |
tree | 280f0761c8dd083c91dfa90b046e04cf24176c72 /src | |
parent | 131f35a6bc639962fdc02d0f7f8e15cda637621e (diff) | |
download | libcss-56378abe781bb755c0e4d69d16035ea861b7c1e1.tar.gz libcss-56378abe781bb755c0e4d69d16035ea861b7c1e1.tar.bz2 |
outline-width
svn path=/trunk/libcss/; revision=5772
Diffstat (limited to 'src')
-rw-r--r-- | src/parse/css21props.c | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/src/parse/css21props.c b/src/parse/css21props.c index 70a4dfb..53a628a 100644 --- a/src/parse/css21props.c +++ b/src/parse/css21props.c @@ -2584,10 +2584,25 @@ css_error parse_outline_width(css_css21 *c, const parserutils_vector *vector, int *ctx, css_style **result) { - UNUSED(c); - UNUSED(vector); - UNUSED(ctx); - UNUSED(result); + css_error error; + uint32_t opv; + uint8_t flags; + uint16_t value; + + /* Fake as border-left-width */ + error = parse_border_side_width(c, vector, ctx, SIDE_LEFT, result); + if (error != CSS_OK) + return error; + + /* Then change the opcode to outline-width, and clear the side bits */ + opv = *((uint32_t *) (*result)->bytecode); + + flags = getFlags(opv); + value = getValue(opv) & ~SIDE_LEFT; + + opv = buildOPV(OP_OUTLINE_WIDTH, flags, value); + + *((uint32_t *) (*result)->bytecode) = opv; return CSS_OK; } |