summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2008-11-25 19:03:57 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2008-11-25 19:03:57 +0000
commit56378abe781bb755c0e4d69d16035ea861b7c1e1 (patch)
tree280f0761c8dd083c91dfa90b046e04cf24176c72 /src
parent131f35a6bc639962fdc02d0f7f8e15cda637621e (diff)
downloadlibcss-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.c23
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;
}