diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/html.cc | 14 | ||||
-rw-r--r-- | src/styleengine.cc | 20 | ||||
-rw-r--r-- | src/web.cc | 10 |
3 files changed, 22 insertions, 22 deletions
diff --git a/src/html.cc b/src/html.cc index e7ca7990..1f69e21e 100644 --- a/src/html.cc +++ b/src/html.cc @@ -1178,13 +1178,13 @@ static void Html_process_word(DilloHtml *html, const char *word, int size) dFree(Pword); } else { - const char *word2, *word2_end; + const char *word2, *beyond_word2; Pword = NULL; if (!memchr(word,'&', size)) { /* No entities */ word2 = word; - word2_end = word + size - 1; + beyond_word2 = word + size; } else { /* Collapse white-space entities inside the word (except ) */ Pword = a_Html_parse_entities(html, word, size); @@ -1199,7 +1199,7 @@ static void Html_process_word(DilloHtml *html, const char *word, int size) } } word2 = Pword; - word2_end = word2 + strlen(word2) - 1; + beyond_word2 = word2 + strlen(word2); } for (start = i = 0; word2[i]; start = i) { int len; @@ -1209,7 +1209,7 @@ static void Html_process_word(DilloHtml *html, const char *word, int size) Html_process_space(html, word2 + start, i - start); } else if (!strncmp(word2+i, utf8_zero_width_space, 3)) { i += 3; - } else if (a_Utf8_ideographic(word2+i, word2_end, &len)) { + } else if (a_Utf8_ideographic(word2+i, beyond_word2, &len)) { i += len; HT2TB(html)->addText(word2 + start, i - start, html->styleEngine->wordStyle ()); @@ -1218,7 +1218,7 @@ static void Html_process_word(DilloHtml *html, const char *word, int size) i += len; } while (word2[i] && !isspace(word2[i]) && strncmp(word2+i, utf8_zero_width_space, 3) && - (!a_Utf8_ideographic(word2+i, word2_end, &len))); + (!a_Utf8_ideographic(word2+i, beyond_word2, &len))); HT2TB(html)->addText(word2 + start, i - start, html->styleEngine->wordStyle ()); } @@ -2333,10 +2333,6 @@ static void Html_tag_open_area(DilloHtml *html, const char *tag, int tagsize) shape = poly = new Polygon(); for (i = 0; i < (coords->size() / 2); i++) poly->addPoint(coords->get(2*i), coords->get(2*i + 1)); - if (i) { - /* be sure to close it */ - poly->addPoint(coords->get(0), coords->get(1)); - } } delete(coords); } diff --git a/src/styleengine.cc b/src/styleengine.cc index 790f1bd1..b5553973 100644 --- a/src/styleengine.cc +++ b/src/styleengine.cc @@ -240,14 +240,19 @@ void StyleEngine::postprocessAttrs (dw::core::style::StyleAttrs *attrs) { attrs->borderColor.left = attrs->color; if (attrs->borderColor.right == NULL) attrs->borderColor.right = attrs->color; - /* computed value of border-width is 0 if border-style is 'none' */ - if (attrs->borderStyle.top == BORDER_NONE) + /* computed value of border-width is 0 if border-style + is 'none' or 'hidden' */ + if (attrs->borderStyle.top == BORDER_NONE || + attrs->borderStyle.top == BORDER_HIDDEN) attrs->borderWidth.top = 0; - if (attrs->borderStyle.bottom == BORDER_NONE) + if (attrs->borderStyle.bottom == BORDER_NONE || + attrs->borderStyle.bottom == BORDER_HIDDEN) attrs->borderWidth.bottom = 0; - if (attrs->borderStyle.left == BORDER_NONE) + if (attrs->borderStyle.left == BORDER_NONE || + attrs->borderStyle.left == BORDER_HIDDEN) attrs->borderWidth.left = 0; - if (attrs->borderStyle.right == BORDER_NONE) + if (attrs->borderStyle.right == BORDER_NONE || + attrs->borderStyle.right == BORDER_HIDDEN) attrs->borderWidth.right = 0; } @@ -478,9 +483,8 @@ void StyleEngine::apply (int i, StyleAttrs *attrs, CssPropertyList *props) { if (CSS_LENGTH_TYPE (p->value.intVal) == CSS_LENGTH_TYPE_NONE) { attrs->lineHeight = createPerLength(CSS_LENGTH_VALUE(p->value.intVal)); - } else { - computeValue (&lineHeight, p->value.intVal, attrs->font, - attrs->font->size); + } else if (computeValue (&lineHeight, p->value.intVal, + attrs->font, attrs->font->size)) { attrs->lineHeight = createAbsLength(lineHeight); } } @@ -92,12 +92,12 @@ int a_Web_dispatch_by_type (const char *Type, DilloWeb *Web, } else { /* A non-RootUrl. At this moment we only handle image-children */ - if (!dStrncasecmp(Type, "image/", 6)) + if (!dStrncasecmp(Type, "image/", 6)) { dw = (Widget*) a_Mime_set_viewer(Type, Web, Call, Data); - } - - if (!dw) { - MSG_HTTP("unhandled MIME type: \"%s\"\n", Type); + } else { + MSG_HTTP("'%s' cannot be displayed as image; has media type '%s'\n", + URL_STR(Web->url), Type); + } } return (dw ? 1 : -1); } |