From a4d9d4c27feb124f53c7a37e1728ad54f898e76a Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Wed, 11 Feb 2009 16:37:41 +0000 Subject: Fix dumping of cursor values. Testcase for this. svn path=/trunk/libcss/; revision=6437 --- test/data/parse2/tests1.dat | 9 +++++++++ test/dump.h | 12 +++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/test/data/parse2/tests1.dat b/test/data/parse2/tests1.dat index 402c37e..9f96edd 100644 --- a/test/data/parse2/tests1.dat +++ b/test/data/parse2/tests1.dat @@ -38,3 +38,12 @@ | display: block | display: table-cell #reset + +#data +* { cursor: url("foo.png"), url("bar.gif"), pointer; } +#errors +#expected +| * +| cursor: url('foo.png'), url('bar.gif'), pointer +#reset + diff --git a/test/dump.h b/test/dump.h index b38b0b8..c217565 100644 --- a/test/dump.h +++ b/test/dump.h @@ -1132,18 +1132,20 @@ void dump_bytecode(css_style *style, char **ptr) } break; case OP_CURSOR: - switch (value) { - case CURSOR_URI: - { + while (value == CURSOR_URI) { parserutils_hash_entry *he = *((parserutils_hash_entry **) bytecode); ADVANCE(sizeof(ptr)); - *ptr += sprintf(*ptr, "url('%.*s')", + *ptr += sprintf(*ptr, "url('%.*s'), ", (int) he->len, (char *) he->data); + + value = *((uint32_t *) bytecode); + ADVANCE(sizeof(value)); } - break; + + switch (value) { case CURSOR_AUTO: *ptr += sprintf(*ptr, "auto"); break; -- cgit v1.2.3