aboutsummaryrefslogtreecommitdiff
path: root/src/cssparser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/cssparser.cc')
-rw-r--r--src/cssparser.cc17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/cssparser.cc b/src/cssparser.cc
index 932326d4..1b575aec 100644
--- a/src/cssparser.cc
+++ b/src/cssparser.cc
@@ -770,6 +770,7 @@ bool CssParser::parseValue(CssPropertyName prop,
bool found, ret = false;
float fval;
int i, ival, err = 1;
+ Dstr *dstr;
switch (type) {
case CSS_TYPE_ENUM:
@@ -894,11 +895,23 @@ bool CssParser::parseValue(CssPropertyName prop,
break;
case CSS_TYPE_SYMBOL:
- if (ttype == CSS_TK_SYMBOL || ttype == CSS_TK_STRING) {
- val->strVal = dStrdup(tval);
+ /* Read comma separated list of font family names */
+ dstr = dStr_new("");
+ while (ttype == CSS_TK_SYMBOL || ttype == CSS_TK_STRING ||
+ (ttype == CSS_TK_CHAR && tval[0] == ',')) {
+ if (spaceSeparated)
+ dStr_append_c(dstr, ' ');
+ dStr_append(dstr, tval);
ret = true;
nextToken();
}
+
+ if (ret) {
+ val->strVal = dStrstrip(dstr->str);
+ dStr_free(dstr, 0);
+ } else {
+ dStr_free(dstr, 1);
+ }
break;
case CSS_TYPE_FONT_WEIGHT: