From 40abd170cc8c735a99bfb34860793c49f39a9500 Mon Sep 17 00:00:00 2001 From: Sebastian Geerken Date: Mon, 13 Jan 2014 20:50:20 +0100 Subject: Corrected RTFL macros. --- lout/debug.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lout/debug.hh b/lout/debug.hh index 40e27b13..083234f8 100644 --- a/lout/debug.hh +++ b/lout/debug.hh @@ -170,8 +170,8 @@ #define DBG_OBJ_MSG(aspect, prio, msg) #define DBG_OBJ_MSGF(aspect, prio, fmt, ...) -#define DBG_OBJ_MSG_START(obj) -#define DBG_OBJ_MSG_END(obj) +#define DBG_OBJ_MSG_START() +#define DBG_OBJ_MSG_END() #define DBG_OBJ_CREATE(klass) #define DBG_OBJ_DELETE() #define DBG_OBJ_BASECLASS(klass) -- cgit v1.2.3 From 2d9a9d80894d673a99522dd33ae27da2bc432dda Mon Sep 17 00:00:00 2001 From: corvid Date: Tue, 14 Jan 2014 18:39:40 +0000 Subject: comment to a quick glance, that looked like division could be involved. --- dw/fltkviewport.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dw/fltkviewport.cc b/dw/fltkviewport.cc index 9603c508..707c0bd7 100644 --- a/dw/fltkviewport.cc +++ b/dw/fltkviewport.cc @@ -393,7 +393,7 @@ void FltkViewport::scrollTo (int x, int y) } /* multiple calls to scroll can happen before a redraw occurs. - * scrollDX / scrollDY can therefore be non-zero here. + * scrollDX and scrollDY can therefore be non-zero here. */ updateCanvasWidgets (x - scrollX, y - scrollY); scrollDX += x - scrollX; -- cgit v1.2.3 From 76e1bd77ca2905f185b2363c589b77840687168d Mon Sep 17 00:00:00 2001 From: corvid Date: Sun, 2 Feb 2014 15:30:49 +0000 Subject: our simplistic TLD list grows more and more worthless --- dpi/cookies.c | 10 +++++----- src/url.c | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/dpi/cookies.c b/dpi/cookies.c index 32f2d5b9..6c5e958e 100644 --- a/dpi/cookies.c +++ b/dpi/cookies.c @@ -1042,14 +1042,14 @@ static uint_t Cookies_internal_dots_required(const char *host) if (tld_len > 0) { /* These TLDs were chosen by examining the current publicsuffix list - * in September 2013 and picking out those where it was simplest for + * in February 2014 and picking out those where it was simplest for * them to describe the situation by beginning with a "*.[tld]" rule * or every rule was "[something].[tld]". */ - const char *const tlds[] = {"au","bd","bn","ck","cy","er","et","fj", - "fk","gn","gu","il","jm","ke","kh","kp", - "kw","lb","lr","mm","mt","mz","ni","np", - "nz","pg","tr","uk","ye","za","zm","zw"}; + const char *const tlds[] = {"bd","bn","ck","cy","er","et","fj","fk", + "gu","il","jm","ke","kh","kw","mm","mz", + "ni","np","nz","pg","tr","uk","ye","za", + "zm","zw"}; uint_t i, tld_num = sizeof(tlds) / sizeof(tlds[0]); for (i = 0; i < tld_num; i++) { diff --git a/src/url.c b/src/url.c index 6780ca8e..9d3e14b2 100644 --- a/src/url.c +++ b/src/url.c @@ -688,14 +688,14 @@ static uint_t Url_host_public_internal_dots(const char *host) if (tld_len > 0) { /* These TLDs were chosen by examining the current publicsuffix list - * in September 2013 and picking out those where it was simplest for + * in February 2014 and picking out those where it was simplest for * them to describe the situation by beginning with a "*.[tld]" rule * or every rule was "[something].[tld]". */ - const char *const tlds[] = {"au","bd","bn","ck","cy","er","et","fj", - "fk","gn","gu","il","jm","ke","kh","kp", - "kw","lb","lr","mm","mt","mz","ni","np", - "nz","pg","tr","uk","ye","za","zm","zw"}; + const char *const tlds[] = {"bd","bn","ck","cy","er","et","fj","fk", + "gu","il","jm","ke","kh","kw","mm","mz", + "ni","np","nz","pg","tr","uk","ye","za", + "zm","zw"}; uint_t i, tld_num = sizeof(tlds) / sizeof(tlds[0]); for (i = 0; i < tld_num; i++) { -- cgit v1.2.3 From 73a5b8c1d1bdf4d2cad8fdea3deb81ae8e34c9d3 Mon Sep 17 00:00:00 2001 From: corvid Date: Sun, 2 Feb 2014 17:05:01 +0000 Subject: trim some spaces --- dw/fltkimgbuf.cc | 22 +++++++++++----------- dw/imgrenderer.hh | 6 +++--- dw/layout.cc | 24 ++++++++++++------------ dw/style.cc | 32 ++++++++++++++++---------------- dw/style.hh | 4 ++-- dw/table.cc | 2 +- lout/container.cc | 8 ++++---- lout/container.hh | 2 +- src/cssparser.cc | 2 +- src/html.cc | 6 +++--- src/html_common.hh | 2 +- src/styleengine.cc | 2 +- test/dw_image_background.cc | 2 +- 13 files changed, 57 insertions(+), 57 deletions(-) diff --git a/dw/fltkimgbuf.cc b/dw/fltkimgbuf.cc index e537c761..26b46969 100644 --- a/dw/fltkimgbuf.cc +++ b/dw/fltkimgbuf.cc @@ -52,10 +52,10 @@ uchar *FltkImgbuf::findGammaCorrectionTable (double gamma) } _MSG("Creating new table for gamma = %g\n", gamma); - + GammaCorrectionTable *gct = new GammaCorrectionTable(); gct->gamma = gamma; - + for (int i = 0; i < 256; i++) gct->map[i] = 255 * pow((double)i / 255, gamma); @@ -107,7 +107,7 @@ void FltkImgbuf::init (Type type, int width, int height, double gamma, } else if (width > MAX_WIDTH) { // Too large dimensions cause dangerous overflow errors, so we // limit dimensions to harmless values. - // + // // Example: 65535 * 65536 / 65536 (see scaling below) results in // the negative value -1. @@ -140,11 +140,11 @@ void FltkImgbuf::init (Type type, int width, int height, double gamma, rawdata = new uchar[bpp * width * height]; // Set light-gray as interim background color. memset(rawdata, 222, width*height*bpp); - + refCount = 1; deleteOnUnref = true; copiedRows = new lout::misc::BitSet (height); - + // The list is only used for root buffers. if (isRoot()) scaledBuffers = new lout::container::typed::List (true); @@ -308,15 +308,15 @@ inline void FltkImgbuf::scaleBuffer (const core::byte *src, int srcWidth, int v[bpp]; for(int i = 0; i < bpp; i++) v[i] = 0; - + for(int xo = xo1; xo < xo2; xo++) for(int yo = yo1; yo < yo2; yo++) { const core::byte *ps = src + bpp * (yo * srcWidth + xo); for(int i = 0; i < bpp; i++) - v[i] += + v[i] += (scaleMode == BEAUTIFUL_GAMMA ? gammaMap2[ps[i]] : ps[i]); } - + core::byte *pd = dest + bpp * (y * destWidth + x); for(int i = 0; i < bpp; i++) pd[i] = @@ -332,7 +332,7 @@ void FltkImgbuf::copyRow (int row, const core::byte *data) // Flag the row done and copy its data. copiedRows->set (row, true); memcpy(rawdata + row * width * bpp, data, width * bpp); - + // Update all the scaled buffers of this root image. for (Iterator it = scaledBuffers->iterator(); it.hasNext(); ) { @@ -417,7 +417,7 @@ void FltkImgbuf::getRowArea (int row, dw::core::Rectangle *area) // scaled buffer int sr1 = scaledY (row); int sr2 = scaledY (row + 1); - + area->x = 0; area->y = sr1; area->width = width; @@ -533,7 +533,7 @@ int FltkImgbuf::scaledY(int ySrc) int FltkImgbuf::backscaledY(int yScaled) { assert (root != NULL); - + // Notice that rounding errors because of integers do not play a // role. This method cannot be the exact inverse of scaledY, since // scaleY is not bijective, and so not invertible. Instead, both diff --git a/dw/imgrenderer.hh b/dw/imgrenderer.hh index 325a1998..e3b5e95e 100644 --- a/dw/imgrenderer.hh +++ b/dw/imgrenderer.hh @@ -18,14 +18,14 @@ class ImgRenderer public: virtual ~ImgRenderer () { } - /** + /** * \brief Called, when an image buffer is attached. * * This is typically the case when all meta data (size, depth) has been read. */ virtual void setBuffer (core::Imgbuf *buffer, bool resize = false) = 0; - /** + /** * \brief Called, when data from a row is available and has been copied into * the image buffer. * @@ -40,7 +40,7 @@ public: * limit the number of draws. */ virtual void finish () = 0; - + /** * \brief Called, when there are problems with the retrieval of image data. * diff --git a/dw/layout.cc b/dw/layout.cc index d83b2e8a..6f2e8d8b 100644 --- a/dw/layout.cc +++ b/dw/layout.cc @@ -88,7 +88,7 @@ void Layout::LayoutImgRenderer::draw (int x, int y, int width, int height) { layout->queueDraw (x, y, width, height); } - + // ---------------------------------------------------------------------- void Layout::Receiver::canvasSizeChanged (int width, int ascent, int descent) @@ -753,10 +753,10 @@ void Layout::setBgImage (style::StyleImage *bgImage, if (bgImage) bgImage->ref (); - + if (this->bgImage) this->bgImage->unref (); - + this->bgImage = bgImage; this->bgRepeat = bgRepeat; this->bgAttachment = bgAttachment; @@ -784,33 +784,33 @@ void Layout::resizeIdle () // Reset already here, since in this function, queueResize() may be // called again. resizeIdleId = -1; - + if (topLevel) { Requisition requisition; Allocation allocation; - + topLevel->sizeRequest (&requisition); - + allocation.x = allocation.y = 0; allocation.width = requisition.width; allocation.ascent = requisition.ascent; allocation.descent = requisition.descent; topLevel->sizeAllocate (&allocation); - + canvasWidth = requisition.width; canvasAscent = requisition.ascent; canvasDescent = requisition.descent; - + emitter.emitCanvasSizeChanged (canvasWidth, canvasAscent, canvasDescent); - + // Tell the view about the new world size. view->setCanvasSize (canvasWidth, canvasAscent, canvasDescent); // view->queueDrawTotal (false); - + if (usesViewport) { int currHThickness = currHScrollbarThickness(); int currVThickness = currVScrollbarThickness(); - + if (!canvasHeightGreater && canvasAscent + canvasDescent > viewportHeight - currHThickness) { @@ -818,7 +818,7 @@ void Layout::resizeIdle () setSizeHints (); /* May queue a new resize. */ } - + // Set viewport sizes. view->setViewportSize (viewportWidth, viewportHeight, currHThickness, currVThickness); diff --git a/dw/style.cc b/dw/style.cc index 3a01d903..8ec230a1 100644 --- a/dw/style.cc +++ b/dw/style.cc @@ -546,7 +546,7 @@ void StyleImage::StyleImgRenderer::drawRow (int row) int w = image->imgbufSrc->getRootWidth (); int h = image->imgbufSrc->getRootHeight (); - + for (int x = 0; x < image->tilesX; x++) for (int y = 0; y < image->tilesX; y++) image->imgbufSrc->copyTo (image->imgbufTiled, x * w, y * h, @@ -602,20 +602,20 @@ void StyleImage::ExternalImgRenderer::drawRow (int row) StyleImage *backgroundImage; if (readyToDraw () && (backgroundImage = getBackgroundImage ())) { // All single rows are drawn. - + Imgbuf *imgbuf = backgroundImage->getImgbufSrc(); int imgWidth = imgbuf->getRootWidth (); int imgHeight = imgbuf->getRootHeight (); - + int x, y, width, height; getBgArea (&x, &y, &width, &height); - + int xRef, yRef, widthRef, heightRef; getRefArea (&xRef, &yRef, &widthRef, &heightRef); - + bool repeatX, repeatY, doDraw; int origX, origY, tileX1, tileX2, tileY1, tileY2; - + calcBackgroundRelatedValues (backgroundImage, getBackgroundRepeat (), getBackgroundAttachment (), @@ -635,7 +635,7 @@ void StyleImage::ExternalImgRenderer::drawRow (int row) for (int tileY = tileY1; tileY <= tileY2; tileY++) { int x1 = misc::max (origX + tileX1 * imgWidth, x); int x2 = misc::min (origX + (tileX2 + 1) * imgWidth, x + width); - + int yt = origY + tileY * imgHeight + row; if (yt >= y && yt < y + height) draw (x1, yt, x2 - x1, 1); @@ -1196,7 +1196,7 @@ void drawBackground (View *view, Layout *layout, Rectangle *area, Color::SHADING_INVERSE : Color::SHADING_NORMAL, true, intersection.x, intersection.y, intersection.width, intersection.height); - + if (bgImage) drawBackgroundImage (view, style->backgroundImage, style->backgroundRepeat, @@ -1206,7 +1206,7 @@ void drawBackground (View *view, Layout *layout, Rectangle *area, intersection.x, intersection.y, intersection.width, intersection.height, xRef, yRef, widthRef, heightRef); - + } } } @@ -1225,7 +1225,7 @@ void drawBackgroundImage (View *view, StyleImage *backgroundImage, bool repeatX, repeatY, doDraw; int origX, origY, tileX1, tileX2, tileY1, tileY2; - + calcBackgroundRelatedValues (backgroundImage, backgroundRepeat, backgroundAttachment, backgroundPositionX, backgroundPositionY, x, y, width, height, @@ -1258,8 +1258,8 @@ void drawBackgroundImage (View *view, StyleImage *backgroundImage, int yt = origY + tileY * imgHeightS; int y1 = misc::max (yt, y); int y2 = misc::min (yt + imgHeightT, y + height); - - view->drawImage (imgbufT, xt, yt, x1 - xt, y1 - yt, + + view->drawImage (imgbufT, xt, yt, x1 - xt, y1 - yt, x2 - x1, y2 - y1); } } @@ -1285,7 +1285,7 @@ void calcBackgroundRelatedValues (StyleImage *backgroundImage, backgroundRepeat == BACKGROUND_REPEAT_X; *repeatY = backgroundRepeat == BACKGROUND_REPEAT || backgroundRepeat == BACKGROUND_REPEAT_Y; - + *origX = xRef + (isPerLength (backgroundPositionX) ? multiplyWithPerLength (widthRef - imgWidth, backgroundPositionX) : @@ -1294,7 +1294,7 @@ void calcBackgroundRelatedValues (StyleImage *backgroundImage, (isPerLength (backgroundPositionY) ? multiplyWithPerLength (heightRef - imgHeight, backgroundPositionY) : absLengthVal (backgroundPositionY)); - + *tileX1 = xDraw < *origX ? - (*origX - xDraw + imgWidth - 1) / imgWidth : (xDraw - *origX) / imgWidth; @@ -1307,7 +1307,7 @@ void calcBackgroundRelatedValues (StyleImage *backgroundImage, *tileY2 = *origY < yDraw + heightDraw ? (yDraw + heightDraw - *origY - 1) / imgHeight : - (*origY - (yDraw + heightDraw) + imgHeight - 1) / imgHeight; - + *doDraw = true; if (!*repeatX) { // Only center tile (tileX = 0) is drawn, ... @@ -1318,7 +1318,7 @@ void calcBackgroundRelatedValues (StyleImage *backgroundImage, // ... but is not visible. *doDraw = false; } - + if (!*repeatY) { // Analogue. if (*tileY1 <= 0 && *tileY2 >= 0) diff --git a/dw/style.hh b/dw/style.hh index 7127b6db..e0ce9d89 100644 --- a/dw/style.hh +++ b/dw/style.hh @@ -448,7 +448,7 @@ inline int multiplyWithRelLength(int x, Length l) { return x * relLengthVal(l); } - + enum { /** \brief Represents "auto" lengths. */ LENGTH_AUTO = 0 @@ -813,7 +813,7 @@ public: { public: void getPaddingArea (int *x, int *y, int *width, int *height); - + StyleImage *getBackgroundImage (); BackgroundRepeat getBackgroundRepeat (); BackgroundAttachment getBackgroundAttachment (); diff --git a/dw/table.cc b/dw/table.cc index 6fe0da8b..b6f7209b 100644 --- a/dw/table.cc +++ b/dw/table.cc @@ -1072,7 +1072,7 @@ void Table::apportion_percentages2(int totalWidth, int forceTotalWidth) for (int col = 0; col < numCols; col++) { if (core::style::isPerLength (colPercents->get(col))) { // This could cause rounding errors: - // + // // int d = // core::dw::multiplyWithPerLength (extraWidth, // colPercents->get(col)) diff --git a/lout/container.cc b/lout/container.cc index de36a6f7..de7b93e2 100644 --- a/lout/container.cc +++ b/lout/container.cc @@ -208,7 +208,7 @@ int Vector::bsearch(Object *key, bool mustExist) // new implementation. if (numElements == 0) return mustExist ? -1 : 0; - + int high = numElements - 1, low = 0; while (true) { @@ -230,7 +230,7 @@ int Vector::bsearch(Object *key, bool mustExist) low = index + 1; } } - + /* void *result = ::bsearch (&key, array, numElements, sizeof (Object*), @@ -562,7 +562,7 @@ HashTable::~HashTable() PRINTF ("- deleting value: %s\n", value->toString()); delete value; } - } + } } } } @@ -596,7 +596,7 @@ void HashTable::intoStringBuffer(misc::StringBuffer *sb) node->object->intoStringBuffer(sb); sb->append(" => "); - + Object *value = ((KeyValuePair*)node)->value; if (value) value->intoStringBuffer(sb); diff --git a/lout/container.hh b/lout/container.hh index c87eb10c..09c8ffc0 100644 --- a/lout/container.hh +++ b/lout/container.hh @@ -114,7 +114,7 @@ private: private: Vector *vector; int index; - + public: VectorIterator(Vector *vector) { this->vector = vector; index = -1; } bool hasNext(); diff --git a/src/cssparser.cc b/src/cssparser.cc index 47632979..3f5f2869 100644 --- a/src/cssparser.cc +++ b/src/cssparser.cc @@ -716,7 +716,7 @@ bool CssParser::tokenMatchesProperty(CssPropertyName prop, CssValueType *type) dStrAsciiCasecmp(tval, "right") == 0 || dStrAsciiCasecmp(tval, "top") == 0 || dStrAsciiCasecmp(tval, "bottom") == 0)) - return true; + return true; // Fall Through (lenght and percentage) case CSS_TYPE_LENGTH_PERCENTAGE: case CSS_TYPE_LENGTH_PERCENTAGE_NUMBER: diff --git a/src/html.cc b/src/html.cc index 1257c102..8774b93e 100644 --- a/src/html.cc +++ b/src/html.cc @@ -1382,7 +1382,7 @@ static void Html_tag_cleanup_at_close(DilloHtml *html, int new_idx) * by closing them before opening another. * This is not an HTML SPEC restriction , but it avoids lots of trouble * inside dillo (concurrent inputs), and makes almost no sense to have. - */ + */ static void Html_tag_cleanup_nested_inputs(DilloHtml *html, int new_idx) { static int i_BUTTON = a_Html_tag_index("button"), @@ -1695,9 +1695,9 @@ static void Html_tag_close_head(DilloHtml *html) /* match for the well formed start of HEAD section */ if (html->Num_TITLE == 0) BUG_MSG("HEAD section lacks the TITLE element\n"); - + html->InFlags &= ~IN_HEAD; - + /* charset is already set, load remote stylesheets now */ for (int i = 0; i < html->cssUrls->size(); i++) { a_Html_load_stylesheet(html, html->cssUrls->get(i)); diff --git a/src/html_common.hh b/src/html_common.hh index a43d91b7..b70c8f80 100644 --- a/src/html_common.hh +++ b/src/html_common.hh @@ -233,7 +233,7 @@ public: { return styleEngine->wordStyle (bw, base_url); } inline void restyle () { styleEngine->restyle (bw, base_url); } - + }; /* diff --git a/src/styleengine.cc b/src/styleengine.cc index 3f621cee..64861973 100644 --- a/src/styleengine.cc +++ b/src/styleengine.cc @@ -551,7 +551,7 @@ void StyleEngine::apply (int i, StyleAttrs *attrs, CssPropertyList *props, a_Url_free (imgUrl); } - break; + break; case CSS_PROPERTY_BACKGROUND_POSITION: computeLength (&attrs->backgroundPositionX, p->value.posVal->posX, attrs->font); diff --git a/test/dw_image_background.cc b/test/dw_image_background.cc index 24966850..14cb7b97 100644 --- a/test/dw_image_background.cc +++ b/test/dw_image_background.cc @@ -117,7 +117,7 @@ int main(int argc, char **argv) image1 = StyleImage::create (); image1->connectDeletion (&isdr); - layout->setBgImage (image1, BACKGROUND_REPEAT_Y, + layout->setBgImage (image1, BACKGROUND_REPEAT_Y, BACKGROUND_ATTACHMENT_SCROLL, createPerLength (0.5), createAbsLength (30)); -- cgit v1.2.3 From 05faa251710c43dc20dc5cf1bffa3f0b23a119a0 Mon Sep 17 00:00:00 2001 From: Sebastian Geerken Date: Mon, 3 Feb 2014 21:27:09 +0100 Subject: Doc. --- doc/rounding-errors.doc | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/doc/rounding-errors.doc b/doc/rounding-errors.doc index 133a1fe5..a442033e 100644 --- a/doc/rounding-errors.doc +++ b/doc/rounding-errors.doc @@ -19,6 +19,17 @@ avoided by transforming the formula into Of corse, when all \f$y_i\f$ are calculated in a sequence, \f$\sum_{j=0}^{j=i} x_j\f$ and \f$\sum_{j=0}^{j=i-1} y_j\f$ can be -accumulated in the same loop. +accumulated in the same loop. Regard this as sample: -*/ \ No newline at end of file +\code +int n, x[n], a, b; // Should all be initialized. +int y[n], cumX = 0, cumY = 0; + +for (int i = 0; i < n; i++) { + cumX += x[i] + y[i] = (cumX * a) / b - cumY; + cumY += y[i]; +} +\endcode + +*/ -- cgit v1.2.3 From 2908fe39a624bce28f25c0212a0b9eea08914119 Mon Sep 17 00:00:00 2001 From: Sebastian Geerken Date: Thu, 6 Feb 2014 20:30:11 +0100 Subject: Added missing docs to Makefile.am. --- doc/Makefile.am | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/Makefile.am b/doc/Makefile.am index dad95629..d48e3e73 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -14,6 +14,7 @@ EXTRA_DIST = \ fltk-problems.doc \ rounding-errors.doc \ uml-legend.doc \ + dw-line-breaking.doc \ dw-example-screenshot.png \ dw-viewport-without-scrollbar.png \ dw-viewport-with-scrollbar.png \ @@ -26,6 +27,7 @@ EXTRA_DIST = \ dw-textblock-collapsing-spaces-1-2.png \ dw-textblock-collapsing-spaces-2-1.png \ dw-textblock-collapsing-spaces-2-2.png \ + not-so-simple-container.png \ Cache.txt \ Cookies.txt \ Dillo.txt \ @@ -37,6 +39,7 @@ EXTRA_DIST = \ NC_design.txt \ Selection.txt \ Dpid.txt \ + CCCwork.txt \ README \ dillo.1.in -- cgit v1.2.3 From 8711f43231e783f0c71a0d3f903c747188bfa0ae Mon Sep 17 00:00:00 2001 From: corvid Date: Sat, 15 Feb 2014 18:41:12 +0000 Subject: rudimentary support for html5 video,audio,source,embed --- src/css.hh | 7 +-- src/html.cc | 136 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/html_common.hh | 5 +- 3 files changed, 143 insertions(+), 5 deletions(-) diff --git a/src/css.hh b/src/css.hh index 6088e2df..782b2c7b 100644 --- a/src/css.hh +++ b/src/css.hh @@ -464,10 +464,11 @@ class CssStyleSheet { (true, true, 256) {}; }; - static const int ntags = 90 + 10; // \todo don't hardcode + static const int ntags = 90 + 14; // \todo don't hardcode /* 90 is the full number of html4 elements, including those which we have - * implemented. From html 5, let's add: article, header, footer, mark, - * nav, section, aside, figure, figcaption, wbr. + * implemented. From html5, let's add: article, header, footer, mark, + * nav, section, aside, figure, figcaption, wbr, audio, video, source, + * embed. */ RuleList elementTable[ntags], anyTable; diff --git a/src/html.cc b/src/html.cc index 8774b93e..f759c56c 100644 --- a/src/html.cc +++ b/src/html.cc @@ -2514,6 +2514,138 @@ static void Html_tag_open_object(DilloHtml *html, const char *tag, int tagsize) a_Url_free(base_url); } +/* + *