version 1.355, 2006/03/31 14:20:19
|
version 1.356, 2006/04/06 09:25:17
|
Line 3447 static char *ParseCSSFont (Element eleme
|
Line 3447 static char *ParseCSSFont (Element eleme
|
} |
} |
|
|
/*---------------------------------------------------------------------- |
/*---------------------------------------------------------------------- |
ParseCSSTextDecoration: parse a CSS text decor string |
ParseCSSTextDecoration: parse a CSS text-decoration value. |
we expect the input string describing the attribute to be |
We expect the input string to be none, inherit or a combination of |
underline, overline, line-through, blink or none. |
underline, overline, line-through, and blink. |
----------------------------------------------------------------------*/ |
----------------------------------------------------------------------*/ |
static char *ParseCSSTextDecoration (Element element, PSchema tsch, |
static char *ParseCSSTextDecoration (Element element, PSchema tsch, |
PresentationContext context, char *cssRule, |
PresentationContext context, char *cssRule, |
Line 3457 static char *ParseCSSTextDecoration (Ele
|
Line 3457 static char *ParseCSSTextDecoration (Ele
|
{ |
{ |
PresentationValue decor; |
PresentationValue decor; |
char *ptr = cssRule; |
char *ptr = cssRule; |
|
ThotBool ok; |
|
|
decor.typed_data.value = 0; |
decor.typed_data.value = 0; |
decor.typed_data.unit = UNIT_REL; |
decor.typed_data.unit = UNIT_REL; |
decor.typed_data.real = FALSE; |
decor.typed_data.real = FALSE; |
cssRule = SkipBlanksAndComments (cssRule); |
cssRule = SkipBlanksAndComments (cssRule); |
|
ok = TRUE; |
if (!strncasecmp (cssRule, "none", 4)) |
if (!strncasecmp (cssRule, "none", 4)) |
{ |
{ |
decor.typed_data.value = NoUnderline; |
decor.typed_data.value = NoUnderline; |
cssRule += 4; |
cssRule += 4; |
} |
} |
else if (!strncasecmp (cssRule, "underline", 9)) |
|
{ |
|
decor.typed_data.value = Underline; |
|
cssRule += 9; |
|
} |
|
else if (!strncasecmp (cssRule, "overline", 8)) |
|
{ |
|
decor.typed_data.value = Overline; |
|
cssRule += 8; |
|
} |
|
else if (!strncasecmp (cssRule, "line-through", 12)) |
|
{ |
|
decor.typed_data.value = CrossOut; |
|
cssRule += 12; |
|
} |
|
else if (!strncasecmp (cssRule, "blink", 5)) |
|
{ |
|
/* the blink text-decoration attribute is not supported */ |
|
cssRule += 5; |
|
} |
|
else if (!strncasecmp (cssRule, "inherit", 7)) |
else if (!strncasecmp (cssRule, "inherit", 7)) |
{ |
{ |
decor.typed_data.unit = VALUE_INHERIT; |
decor.typed_data.unit = VALUE_INHERIT; |
Line 3494 static char *ParseCSSTextDecoration (Ele
|
Line 3476 static char *ParseCSSTextDecoration (Ele
|
} |
} |
else |
else |
{ |
{ |
|
do |
|
{ |
|
if (!strncasecmp (cssRule, "underline", 9)) |
|
{ |
|
decor.typed_data.value = Underline; |
|
cssRule += 9; |
|
} |
|
else if (!strncasecmp (cssRule, "overline", 8)) |
|
{ |
|
decor.typed_data.value = Overline; |
|
cssRule += 8; |
|
} |
|
else if (!strncasecmp (cssRule, "line-through", 12)) |
|
{ |
|
decor.typed_data.value = CrossOut; |
|
cssRule += 12; |
|
} |
|
else if (!strncasecmp (cssRule, "blink", 5)) |
|
{ |
|
/* the blink text-decoration attribute is not supported */ |
|
cssRule += 5; |
|
} |
|
else |
|
ok = FALSE; |
|
if (ok) |
|
{ |
|
cssRule = SkipBlanksAndComments (cssRule); |
|
} |
|
} |
|
while (ok && (*cssRule != ';' && *cssRule != '}' && *cssRule != EOS)); |
|
} |
|
if (!ok) |
|
{ |
cssRule = SkipValue ("Invalid text-decoration value", cssRule); |
cssRule = SkipValue ("Invalid text-decoration value", cssRule); |
cssRule = CheckImportantRule (cssRule, context); |
cssRule = CheckImportantRule (cssRule, context); |
return (cssRule); |
return (cssRule); |