summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2012-01-28 20:25:01 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2012-01-28 20:25:01 +0000
commit32ed7d0984f0dd872b4aaac0ac12c18471f291a0 (patch)
tree39181671076458c8f379507e0585d376ebc7363f /test
parent6800a4d203fa62366720cc18993a74af92c0359c (diff)
downloadlibcss-32ed7d0984f0dd872b4aaac0ac12c18471f291a0.tar.gz
libcss-32ed7d0984f0dd872b4aaac0ac12c18471f291a0.tar.bz2
Add support for parsing CSS3 Multi-column layout properties:
+ break-after + break-before + break-inside + column-count + column-fill + column-gap + column-rule-color + column-rule-style + column_rule-width + column_span + column_width TODO: Shorthand properties (columns, column-rule) TODO: Selection svn path=/trunk/libcss/; revision=13412
Diffstat (limited to 'test')
-rw-r--r--test/data/parse/properties.dat444
-rw-r--r--test/data/parse2/INDEX3
-rw-r--r--test/data/parse2/multicol.dat665
-rw-r--r--test/dump.h178
4 files changed, 1289 insertions, 1 deletions
diff --git a/test/data/parse/properties.dat b/test/data/parse/properties.dat
index 29b5eb6..efe06ee 100644
--- a/test/data/parse/properties.dat
+++ b/test/data/parse/properties.dat
@@ -3818,3 +3818,447 @@ p:before { content: open-quote url('http://picodrive.acornarcade.com/') " : " at
| 0x02000062 0xfffffc00
#reset
+##
+## 64 - break-after
+##
+
+#data
+* { break-after: auto; }
+#errors
+#expected
+| 1 *
+| 0x00000064
+#reset
+
+#data
+* { break-after: always; }
+#errors
+#expected
+| 1 *
+| 0x00040064
+#reset
+
+#data
+* { break-after: avoid; }
+#errors
+#expected
+| 1 *
+| 0x00080064
+#reset
+
+#data
+* { break-after: left; }
+#errors
+#expected
+| 1 *
+| 0x000c0064
+#reset
+
+#data
+* { break-after: right; }
+#errors
+#expected
+| 1 *
+| 0x00100064
+#reset
+
+#data
+* { break-after: page; }
+#errors
+#expected
+| 1 *
+| 0x00140064
+#reset
+
+#data
+* { break-after: column; }
+#errors
+#expected
+| 1 *
+| 0x00180064
+#reset
+
+#data
+* { break-after: avoid-page; }
+#errors
+#expected
+| 1 *
+| 0x001c0064
+#reset
+
+#data
+* { break-after: avoid-column; }
+#errors
+#expected
+| 1 *
+| 0x00200064
+#reset
+
+##
+## 65 - break-before
+##
+
+#data
+* { break-before: auto; }
+#errors
+#expected
+| 1 *
+| 0x00000065
+#reset
+
+#data
+* { break-before: always; }
+#errors
+#expected
+| 1 *
+| 0x00040065
+#reset
+
+#data
+* { break-before: avoid; }
+#errors
+#expected
+| 1 *
+| 0x00080065
+#reset
+
+#data
+* { break-before: left; }
+#errors
+#expected
+| 1 *
+| 0x000c0065
+#reset
+
+#data
+* { break-before: right; }
+#errors
+#expected
+| 1 *
+| 0x00100065
+#reset
+
+#data
+* { break-before: page; }
+#errors
+#expected
+| 1 *
+| 0x00140065
+#reset
+
+#data
+* { break-before: column; }
+#errors
+#expected
+| 1 *
+| 0x00180065
+#reset
+
+#data
+* { break-before: avoid-page; }
+#errors
+#expected
+| 1 *
+| 0x001c0065
+#reset
+
+#data
+* { break-before: avoid-column; }
+#errors
+#expected
+| 1 *
+| 0x00200065
+#reset
+
+##
+## 66 - break-inside
+##
+
+#data
+* { break-inside: auto; }
+#errors
+#expected
+| 1 *
+| 0x00000066
+#reset
+
+#data
+* { break-inside: avoid; }
+#errors
+#expected
+| 1 *
+| 0x00040066
+#reset
+
+#data
+* { break-inside: avoid-page; }
+#errors
+#expected
+| 1 *
+| 0x00080066
+#reset
+
+#data
+* { break-inside: avoid-column; }
+#errors
+#expected
+| 1 *
+| 0x000c0066
+#reset
+
+##
+## 67 - column-count
+##
+
+#data
+* { column-count: auto; }
+#errors
+#expected
+| 1 *
+| 0x00000067
+#reset
+
+#data
+* { column-count: 2; }
+#errors
+#expected
+| 1 *
+| 0x02000067 0x00000800
+#reset
+
+##
+## 68 - column-fill
+##
+
+#data
+* { column-fill: balance; }
+#errors
+#expected
+| 1 *
+| 0x00000068
+#reset
+
+#data
+* { column-fill: auto; }
+#errors
+#expected
+| 1 *
+| 0x00040068
+#reset
+
+##
+## 69 - column-gap
+##
+
+#data
+* { column-gap: normal; }
+#errors
+#expected
+| 1 *
+| 0x00000069
+#reset
+
+#data
+* { column-gap: 0.1em; }
+#errors
+#expected
+| 1 *
+| 0x02000069 0x00000066 0x00000002
+#reset
+
+##
+## 6a - column-rule-color
+##
+
+#data
+* { column-rule-color: #BBC; }
+#errors
+#expected
+| 1 *
+| 0x0200006a 0xffbbbbcc
+#reset
+
+#data
+* { column-rule-color: currentColor }
+#errors
+#expected
+| 1 *
+| 0x0004006a
+#reset
+
+#data
+* { column-rule-color: transparent }
+#errors
+#expected
+| 1 *
+| 0x0000006a
+#reset
+
+##
+## 6b - column-rule-style
+##
+
+#data
+* { column-rule-style: none; }
+#errors
+#expected
+| 1 *
+| 0x0000006b
+#reset
+
+#data
+* { column-rule-style: hidden; }
+#errors
+#expected
+| 1 *
+| 0x0004006b
+#reset
+
+#data
+* { column-rule-style: dotted; }
+#errors
+#expected
+| 1 *
+| 0x0008006b
+#reset
+
+#data
+* { column-rule-style: dashed; }
+#errors
+#expected
+| 1 *
+| 0x000c006b
+#reset
+
+#data
+* { column-rule-style: solid; }
+#errors
+#expected
+| 1 *
+| 0x0010006b
+#reset
+
+#data
+* { column-rule-style: double; }
+#errors
+#expected
+| 1 *
+| 0x0014006b
+#reset
+
+#data
+* { column-rule-style: groove; }
+#errors
+#expected
+| 1 *
+| 0x0018006b
+#reset
+
+#data
+* { column-rule-style: ridge; }
+#errors
+#expected
+| 1 *
+| 0x001c006b
+#reset
+
+#data
+* { column-rule-style: inset; }
+#errors
+#expected
+| 1 *
+| 0x0020006b
+#reset
+
+#data
+* { column-rule-style: outset; }
+#errors
+#expected
+| 1 *
+| 0x0024006b
+#reset
+
+##
+## 6c - column-rule-width
+##
+
+#data
+* { column-rule-width: thin; }
+#errors
+#expected
+| 1 *
+| 0x0000006c
+#reset
+
+#data
+* { column-rule-width: medium; }
+#errors
+#expected
+| 1 *
+| 0x0004006c
+#reset
+
+#data
+* { column-rule-width: thick; }
+#errors
+#expected
+| 1 *
+| 0x0008006c
+#reset
+
+#data
+* { column-rule-width: 3px; }
+#errors
+#expected
+| 1 *
+| 0x0200006c 0x00000c00 0x00000000
+#reset
+
+#data
+* { column-rule-width: 0; }
+#errors
+#expected
+| 1 *
+| 0x0200006c 0x00000000 0x00000000
+#reset
+
+##
+## 6d - column-span
+##
+
+#data
+* { column-span: none; }
+#errors
+#expected
+| 1 *
+| 0x0000006d
+#reset
+
+#data
+* { column-span: all; }
+#errors
+#expected
+| 1 *
+| 0x0004006d
+#reset
+
+##
+## 6e - column-width
+##
+
+#data
+* { column-width: auto; }
+#errors
+#expected
+| 1 *
+| 0x0000006e
+#reset
+
+#data
+* { column-width: 0.1em; }
+#errors
+#expected
+| 1 *
+| 0x0200006e 0x00000066 0x00000002
+#reset
+
diff --git a/test/data/parse2/INDEX b/test/data/parse2/INDEX
index e51befb..651a87e 100644
--- a/test/data/parse2/INDEX
+++ b/test/data/parse2/INDEX
@@ -17,4 +17,5 @@ font.dat Font property tests
list.dat List property tests
margin.dat Margin property tests
outline.dat Outline property tests
-padding.dat Padding property tests \ No newline at end of file
+padding.dat Padding property tests
+multicol.dat Multi-column layout property tests \ No newline at end of file
diff --git a/test/data/parse2/multicol.dat b/test/data/parse2/multicol.dat
new file mode 100644
index 0000000..d9a7650
--- /dev/null
+++ b/test/data/parse2/multicol.dat
@@ -0,0 +1,665 @@
+#data
+* { break-after: #fff inherit; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-after: 10; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-after: 10em !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-after: column; }
+#errors
+#expected
+| *
+| break-after: column
+#reset
+
+#data
+* { break-after: page !important; }
+#errors
+#expected
+| *
+| break-after: page !important
+#reset
+
+#data
+* { break-after: inherit; }
+#errors
+#expected
+| *
+| break-after: inherit
+#reset
+
+#data
+* { break-after: normal; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-before: #fff inherit; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-before: 10; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-before: 10em !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-before: column; }
+#errors
+#expected
+| *
+| break-before: column
+#reset
+
+#data
+* { break-before: page !important; }
+#errors
+#expected
+| *
+| break-before: page !important
+#reset
+
+#data
+* { break-before: inherit; }
+#errors
+#expected
+| *
+| break-before: inherit
+#reset
+
+#data
+* { break-before: normal; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-inside: #fff inherit; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-inside: 10; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-inside: 10em !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-inside: avoid-column; }
+#errors
+#expected
+| *
+| break-inside: avoid-column
+#reset
+
+#data
+* { break-inside: avoid-page !important; }
+#errors
+#expected
+| *
+| break-inside: avoid-page !important
+#reset
+
+#data
+* { break-inside: page !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { break-inside: inherit; }
+#errors
+#expected
+| *
+| break-inside: inherit
+#reset
+
+#data
+* { break-inside: normal; }
+#errors
+#expected
+| *
+#reset
+
+
+
+
+#data
+* { column-count: normal; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-count: auto; }
+#errors
+#expected
+| *
+| column-count: auto
+#reset
+
+#data
+* { column-count: 3; }
+#errors
+#expected
+| *
+| column-count: 3
+#reset
+
+#data
+* { column-count: 3px; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-count: 2 3; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-fill: 2; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-fill: 2em; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-fill: normal; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-fill: balance; }
+#errors
+#expected
+| *
+| column-fill: balance
+#reset
+
+#data
+* { column-fill: auto; }
+#errors
+#expected
+| *
+| column-fill: auto
+#reset
+
+#data
+* { column-fill: inherit; }
+#errors
+#expected
+| *
+| column-fill: inherit
+#reset
+
+#data
+* { column-fill: inherit !important; }
+#errors
+#expected
+| *
+| column-fill: inherit !important
+#reset
+
+#data
+* { column-gap: 2; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-gap: ; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-gap: auto; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-gap: normal; }
+#errors
+#expected
+| *
+| column-gap: normal
+#reset
+
+#data
+* { column-gap: 2em; }
+#errors
+#expected
+| *
+| column-gap: 2em
+#reset
+
+#data
+* { column-gap: inherit; }
+#errors
+#expected
+| *
+| column-gap: inherit
+#reset
+
+#data
+* { column-gap: inherit !important; }
+#errors
+#expected
+| *
+| column-gap: inherit !important
+#reset
+
+#data
+* { column-gap: !important; }
+#errors
+#expected
+| *
+#reset
+
+
+
+#data
+* { column-rule-color: !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-color: red green; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-color: normal; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-color: auto; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-color: red; }
+#errors
+#expected
+| *
+| column-rule-color: #ffff0000
+#reset
+
+#data
+* { column-rule-color: red !important; }
+#errors
+#expected
+| *
+| column-rule-color: #ffff0000 !important
+#reset
+
+#data
+* { column-rule-color: #BBC; }
+#errors
+#expected
+| *
+| column-rule-color: #ffbbbbcc
+#reset
+
+
+
+#data
+* { column-rule-style: !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-style: none auto; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-style: normal; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-style: solid 10px; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-style: 10px; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-style: dashed; }
+#errors
+#expected
+| *
+| column-rule-style: dashed
+#reset
+
+#data
+* { column-rule-style: groove; }
+#errors
+#expected
+| *
+| column-rule-style: groove
+#reset
+
+#data
+* { column-rule-style: none; }
+#errors
+#expected
+| *
+| column-rule-style: none
+#reset
+
+#data
+* { column-rule-style: dotted; }
+#errors
+#expected
+| *
+| column-rule-style: dotted
+#reset
+
+#data
+* { column-rule-style: outset; }
+#errors
+#expected
+| *
+| column-rule-style: outset
+#reset
+
+#data
+* { column-rule-style: solid !important; }
+#errors
+#expected
+| *
+| column-rule-style: solid !important
+#reset
+
+#data
+* { column-rule-style: inset; }
+#errors
+#expected
+| *
+| column-rule-style: inset
+#reset
+
+#data
+* { column-rule-style: inherit; }
+#errors
+#expected
+| *
+| column-rule-style: inherit
+#reset
+
+#data
+* { column-rule-style: hidden; }
+#errors
+#expected
+| *
+| column-rule-style: hidden
+#reset
+
+
+
+#data
+* { column-rule-width: !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-width: red green; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-width: normal; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-width: auto; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-rule-width: thin; }
+#errors
+#expected
+| *
+| column-rule-width: thin
+#reset
+
+#data
+* { column-rule-width: medium !important; }
+#errors
+#expected
+| *
+| column-rule-width: medium !important
+#reset
+
+#data
+* { column-rule-width: 3px; }
+#errors
+#expected
+| *
+| column-rule-width: 3px
+#reset
+
+#data
+* { column-rule-width: 3px !important; }
+#errors
+#expected
+| *
+| column-rule-width: 3px !important
+#reset
+
+#data
+* { column-rule-width: inherit; }
+#errors
+#expected
+| *
+| column-rule-width: inherit
+#reset
+
+
+
+#data
+* { column-span: !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-span: auto; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-span: 4em; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-span: 3; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-span: 3 !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-span: all; }
+#errors
+#expected
+| *
+| column-span: all
+#reset
+
+#data
+* { column-span: none; }
+#errors
+#expected
+| *
+| column-span: none
+#reset
+
+#data
+* { column-span: none !important; }
+#errors
+#expected
+| *
+| column-span: none !important
+#reset
+
+
+
+#data
+* { column-width: !important; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-width: red green; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-width: normal; }
+#errors
+#expected
+| *
+#reset
+
+#data
+* { column-width: auto; }
+#errors
+#expected
+| *
+| column-width: auto
+#reset
+
+#data
+* { column-width: 30em; }
+#errors
+#expected
+| *
+| column-width: 30em
+#reset
+
+#data
+* { column-width: 30em !important; }
+#errors
+#expected
+| *
+| column-width: 30em !important
+#reset
+
+#data
+* { column-width: inherit; }
+#errors
+#expected
+| *
+| column-width: inherit
+#reset
+
diff --git a/test/dump.h b/test/dump.h
index 8817edf..73b61ea 100644
--- a/test/dump.h
+++ b/test/dump.h
@@ -465,6 +465,17 @@ static const char *opcode_names[] = {
"word-spacing",
"z-index",
"opacity",
+ "break-after",
+ "break-before",
+ "break-inside",
+ "column-count",
+ "column-fill",
+ "column-gap",
+ "column-rule-color",
+ "column-rule-style",
+ "column-rule-width",
+ "column-span",
+ "column-width",
};
static void dump_css_fixed(css_fixed f, char **ptr)
@@ -801,6 +812,7 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
case CSS_PROP_BORDER_BOTTOM_COLOR:
case CSS_PROP_BORDER_LEFT_COLOR:
case CSS_PROP_BACKGROUND_COLOR:
+ case CSS_PROP_COLUMN_RULE_COLOR:
assert(BACKGROUND_COLOR_TRANSPARENT ==
(enum op_background_color)
BORDER_COLOR_TRANSPARENT);
@@ -965,37 +977,68 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
case CSS_PROP_BORDER_RIGHT_STYLE:
case CSS_PROP_BORDER_BOTTOM_STYLE:
case CSS_PROP_BORDER_LEFT_STYLE:
+ case CSS_PROP_COLUMN_RULE_STYLE:
case CSS_PROP_OUTLINE_STYLE:
assert(BORDER_STYLE_NONE ==
(enum op_border_style)
OUTLINE_STYLE_NONE);
+ assert(BORDER_STYLE_NONE ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_NONE);
assert(BORDER_STYLE_HIDDEN ==
(enum op_border_style)
OUTLINE_STYLE_HIDDEN);
+ assert(BORDER_STYLE_HIDDEN ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_HIDDEN);
assert(BORDER_STYLE_DOTTED ==
(enum op_border_style)
OUTLINE_STYLE_DOTTED);
+ assert(BORDER_STYLE_DOTTED ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_DOTTED);
assert(BORDER_STYLE_DASHED ==
(enum op_border_style)
OUTLINE_STYLE_DASHED);
+ assert(BORDER_STYLE_DASHED ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_DASHED);
assert(BORDER_STYLE_SOLID ==
(enum op_border_style)
OUTLINE_STYLE_SOLID);
+ assert(BORDER_STYLE_SOLID ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_SOLID);
assert(BORDER_STYLE_DOUBLE ==
(enum op_border_style)
OUTLINE_STYLE_DOUBLE);
+ assert(BORDER_STYLE_DOUBLE ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_DOUBLE);
assert(BORDER_STYLE_GROOVE ==
(enum op_border_style)
OUTLINE_STYLE_GROOVE);
+ assert(BORDER_STYLE_GROOVE ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_GROOVE);
assert(BORDER_STYLE_RIDGE ==
(enum op_border_style)
OUTLINE_STYLE_RIDGE);
+ assert(BORDER_STYLE_RIDGE ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_RIDGE);
assert(BORDER_STYLE_INSET ==
(enum op_border_style)
OUTLINE_STYLE_INSET);
+ assert(BORDER_STYLE_INSET ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_INSET);
assert(BORDER_STYLE_OUTSET ==
(enum op_border_style)
OUTLINE_STYLE_OUTSET);
+ assert(BORDER_STYLE_OUTSET ==
+ (enum op_border_style)
+ COLUMN_RULE_STYLE_OUTSET);
switch (value) {
case BORDER_STYLE_NONE:
@@ -1034,6 +1077,7 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
case CSS_PROP_BORDER_RIGHT_WIDTH:
case CSS_PROP_BORDER_BOTTOM_WIDTH:
case CSS_PROP_BORDER_LEFT_WIDTH:
+ case CSS_PROP_COLUMN_RULE_WIDTH:
case CSS_PROP_OUTLINE_WIDTH:
assert(BORDER_WIDTH_SET ==
(enum op_border_width)
@@ -1080,6 +1124,7 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
case CSS_PROP_TOP:
case CSS_PROP_HEIGHT:
case CSS_PROP_WIDTH:
+ case CSS_PROP_COLUMN_WIDTH:
assert(BOTTOM_SET ==
(enum op_bottom) LEFT_SET);
assert(BOTTOM_AUTO ==
@@ -1104,6 +1149,12 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
(enum op_bottom) WIDTH_SET);
assert(BOTTOM_AUTO ==
(enum op_bottom) WIDTH_AUTO);
+ assert(BOTTOM_SET ==
+ (enum op_bottom)
+ COLUMN_WIDTH_SET);
+ assert(BOTTOM_AUTO ==
+ (enum op_bottom)
+ COLUMN_WIDTH_AUTO);
switch (value) {
case BOTTOM_SET:
@@ -1121,6 +1172,82 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
break;
}
break;
+ case CSS_PROP_BREAK_AFTER:
+ case CSS_PROP_BREAK_BEFORE:
+ assert(BREAK_AFTER_AUTO ==
+ (enum op_break_after)
+ BREAK_BEFORE_AUTO);
+ assert(BREAK_AFTER_ALWAYS ==
+ (enum op_break_after)
+ BREAK_BEFORE_ALWAYS);
+ assert(BREAK_AFTER_AVOID ==
+ (enum op_break_after)
+ BREAK_BEFORE_AVOID);
+ assert(BREAK_AFTER_LEFT ==
+ (enum op_break_after)
+ BREAK_BEFORE_LEFT);
+ assert(BREAK_AFTER_RIGHT ==
+ (enum op_break_after)
+ BREAK_BEFORE_RIGHT);
+ assert(BREAK_AFTER_PAGE ==
+ (enum op_break_after)
+ BREAK_BEFORE_PAGE);
+ assert(BREAK_AFTER_COLUMN ==
+ (enum op_break_after)
+ BREAK_BEFORE_COLUMN);
+ assert(BREAK_AFTER_AVOID_PAGE ==
+ (enum op_break_after)
+ BREAK_BEFORE_AVOID_PAGE);
+ assert(BREAK_AFTER_AVOID_COLUMN ==
+ (enum op_break_after)
+ BREAK_BEFORE_AVOID_COLUMN);
+
+ switch (value) {
+ case BREAK_AFTER_AUTO:
+ *ptr += sprintf(*ptr, "auto");
+ break;
+ case BREAK_AFTER_ALWAYS:
+ *ptr += sprintf(*ptr, "always");
+ break;
+ case BREAK_AFTER_AVOID:
+ *ptr += sprintf(*ptr, "avoid");
+ break;
+ case BREAK_AFTER_LEFT:
+ *ptr += sprintf(*ptr, "left");
+ break;
+ case BREAK_AFTER_RIGHT:
+ *ptr += sprintf(*ptr, "right");
+ break;
+ case BREAK_AFTER_PAGE:
+ *ptr += sprintf(*ptr, "page");
+ break;
+ case BREAK_AFTER_COLUMN:
+ *ptr += sprintf(*ptr, "column");
+ break;
+ case BREAK_AFTER_AVOID_PAGE:
+ *ptr += sprintf(*ptr, "avoid-page");
+ break;
+ case BREAK_AFTER_AVOID_COLUMN:
+ *ptr += sprintf(*ptr, "avoid-column");
+ break;
+ }
+ break;
+ case CSS_PROP_BREAK_INSIDE:
+ switch (value) {
+ case BREAK_INSIDE_AUTO:
+ *ptr += sprintf(*ptr, "auto");
+ break;
+ case BREAK_INSIDE_AVOID:
+ *ptr += sprintf(*ptr, "avoid");
+ break;
+ case BREAK_INSIDE_AVOID_PAGE:
+ *ptr += sprintf(*ptr, "avoid-page");
+ break;
+ case BREAK_INSIDE_AVOID_COLUMN:
+ *ptr += sprintf(*ptr, "avoid-column");
+ break;
+ }
+ break;
case CSS_PROP_CAPTION_SIDE:
switch (value) {
case CAPTION_SIDE_TOP:
@@ -1220,6 +1347,57 @@ void dump_bytecode(css_style *style, char **ptr, uint32_t depth)
break;
}
break;
+ case CSS_PROP_COLUMN_COUNT:
+ switch (value) {
+ case COLUMN_COUNT_SET:
+ {
+ css_fixed val = *((css_fixed *) bytecode);
+ ADVANCE(sizeof(val));
+ dump_number(val, ptr);
+ }
+ break;
+ case COLUMN_COUNT_AUTO:
+ *ptr += sprintf(*ptr, "auto");
+ break;
+ }
+ break;
+ case CSS_PROP_COLUMN_FILL:
+ switch (value) {
+ case COLUMN_FILL_BALANCE:
+ *ptr += sprintf(*ptr, "balance");
+ break;
+ case COLUMN_FILL_AUTO:
+ *ptr += sprintf(*ptr, "auto");
+ break;
+ }
+ break;
+ case CSS_PROP_COLUMN_GAP:
+ switch (value) {
+ case COLUMN_GAP_SET:
+ {
+ uint32_t unit;
+ css_fixed val = *((css_fixed *) bytecode);
+ ADVANCE(sizeof(val));
+ unit = *((uint32_t *) bytecode);
+ ADVANCE(sizeof(unit));
+ dump_unit(val, unit, ptr);
+ }
+ break;
+ case COLUMN_GAP_NORMAL:
+ *ptr += sprintf(*ptr, "normal");
+ break;
+ }
+ break;
+ case CSS_PROP_COLUMN_SPAN:
+ switch (value) {
+ case COLUMN_SPAN_NONE:
+ *ptr += sprintf(*ptr, "none");
+ break;
+ case COLUMN_SPAN_ALL:
+ *ptr += sprintf(*ptr, "all");
+ break;
+ }
+ break;
case CSS_PROP_CONTENT:
if (value == CONTENT_NORMAL) {
*ptr += sprintf(*ptr, "normal");