aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJorge Arellano Cid <jcid@dillo.org>2009-01-29 09:41:03 -0300
committerJorge Arellano Cid <jcid@dillo.org>2009-01-29 09:41:03 -0300
commit3308709aeede859becbc30d58408960d77bb6485 (patch)
tree3341823ab2bb4db197e77caa8e55ed121b9f0799 /src
parentbafc9d507a448fb5763b75871e672ae658bcf7a1 (diff)
parente5f46ebb930106ebfe6e48b8c4d85454bfc4af12 (diff)
merge
Diffstat (limited to 'src')
-rw-r--r--src/cssparser.cc35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/cssparser.cc b/src/cssparser.cc
index 03fc102c..87718d31 100644
--- a/src/cssparser.cc
+++ b/src/cssparser.cc
@@ -157,8 +157,6 @@ const CssPropertyInfo Css_property_info[CssProperty::CSS_PROPERTY_LAST] = {
{"last", CSS_TYPE_UNUSED, NULL},
};
-#define CSS_SHORTHAND_NUM 14
-
typedef struct {
const char *symbol;
enum {
@@ -215,7 +213,7 @@ const CssProperty::Name Css_border_right_properties[] = {
(CssProperty::Name) - 1
};
-const CssProperty::Name Css_border_style_properties[4] = {
+const CssProperty::Name Css_border_style_properties[] = {
CssProperty::CSS_PROPERTY_BORDER_TOP_STYLE,
CssProperty::CSS_PROPERTY_BORDER_BOTTOM_STYLE,
CssProperty::CSS_PROPERTY_BORDER_LEFT_STYLE,
@@ -229,7 +227,7 @@ const CssProperty::Name Css_border_top_properties[] = {
(CssProperty::Name) - 1
};
-const CssProperty::Name Css_border_width_properties[4] = {
+const CssProperty::Name Css_border_width_properties[] = {
CssProperty::CSS_PROPERTY_BORDER_TOP_WIDTH,
CssProperty::CSS_PROPERTY_BORDER_BOTTOM_WIDTH,
CssProperty::CSS_PROPERTY_BORDER_LEFT_WIDTH,
@@ -243,7 +241,7 @@ const CssProperty::Name Css_list_style_properties[] = {
(CssProperty::Name) - 1
};
-const CssProperty::Name Css_margin_properties[4] = {
+const CssProperty::Name Css_margin_properties[] = {
CssProperty::CSS_PROPERTY_MARGIN_TOP,
CssProperty::CSS_PROPERTY_MARGIN_BOTTOM,
CssProperty::CSS_PROPERTY_MARGIN_LEFT,
@@ -257,14 +255,14 @@ const CssProperty::Name Css_outline_properties[] = {
(CssProperty::Name) - 1
};
-const CssProperty::Name Css_padding_properties[4] = {
+const CssProperty::Name Css_padding_properties[] = {
CssProperty::CSS_PROPERTY_PADDING_TOP,
CssProperty::CSS_PROPERTY_PADDING_BOTTOM,
CssProperty::CSS_PROPERTY_PADDING_LEFT,
CssProperty::CSS_PROPERTY_PADDING_RIGHT
};
-const CssProperty::Name Css_border_properties[12] = {
+const CssProperty::Name Css_border_properties[] = {
CssProperty::CSS_PROPERTY_BORDER_TOP_WIDTH,
CssProperty::CSS_PROPERTY_BORDER_TOP_STYLE,
CssProperty::CSS_PROPERTY_BORDER_TOP_COLOR,
@@ -279,7 +277,16 @@ const CssProperty::Name Css_border_properties[12] = {
CssProperty::CSS_PROPERTY_BORDER_RIGHT_COLOR
};
-static const CssShorthandInfo Css_shorthand_info[CSS_SHORTHAND_NUM] = {
+const CssProperty::Name Css_font_properties[] = {
+ CssProperty::CSS_PROPERTY_FONT_SIZE,
+ CssProperty::CSS_PROPERTY_FONT_STYLE,
+ CssProperty::CSS_PROPERTY_FONT_VARIANT,
+ CssProperty::CSS_PROPERTY_FONT_WEIGHT,
+ CssProperty::CSS_PROPERTY_FONT_FAMILY,
+ (CssProperty::Name) - 1
+};
+
+static const CssShorthandInfo Css_shorthand_info[] = {
{"background", CssShorthandInfo::CSS_SHORTHAND_MULTIPLE,
Css_background_properties},
{"border", CssShorthandInfo::CSS_SHORTHAND_BORDER,
@@ -298,7 +305,8 @@ static const CssShorthandInfo Css_shorthand_info[CSS_SHORTHAND_NUM] = {
Css_border_top_properties},
{"border-width", CssShorthandInfo::CSS_SHORTHAND_DIRECTIONS,
Css_border_width_properties},
- {"font", CssShorthandInfo::CSS_SHORTHAND_FONT, NULL},
+ {"font", CssShorthandInfo::CSS_SHORTHAND_FONT,
+ Css_font_properties},
{"list-style", CssShorthandInfo::CSS_SHORTHAND_MULTIPLE,
Css_list_style_properties},
{"margin", CssShorthandInfo::CSS_SHORTHAND_DIRECTIONS,
@@ -309,6 +317,8 @@ static const CssShorthandInfo Css_shorthand_info[CSS_SHORTHAND_NUM] = {
Css_padding_properties},
};
+#define CSS_SHORTHAND_NUM (sizeof(Css_shorthand_info) / sizeof(CssShorthandInfo))
+
/* ----------------------------------------------------------------------
* Initialization, Cleanup
* ---------------------------------------------------------------------- */
@@ -859,6 +869,9 @@ static void Css_parse_declaration(CssParser * parser,
Css_next_token(parser);
switch (Css_shorthand_info[sh_index].type) {
+
+ case CssShorthandInfo::CSS_SHORTHAND_FONT:
+ /* \todo Implement details. */
case CssShorthandInfo::CSS_SHORTHAND_MULTIPLE:
do {
for (found = false, i = 0;
@@ -951,10 +964,6 @@ static void Css_parse_declaration(CssParser * parser,
}
} while (found);
break;
-
- case CssShorthandInfo::CSS_SHORTHAND_FONT:
- /* todo: Not yet implemented. */
- break;
}
}
}