From a1284ccd1fb26e3e47e6a622c73bd29c6b2e979a Mon Sep 17 00:00:00 2001 From: Laurent MONIN Date: Wed, 7 Dec 2005 20:51:09 +0100 Subject: [PATCH] skip_table(): simplify code. --- src/document/html/parser/table.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/document/html/parser/table.c b/src/document/html/parser/table.c index 65d9bcedb..dff2aabf9 100644 --- a/src/document/html/parser/table.c +++ b/src/document/html/parser/table.c @@ -508,7 +508,7 @@ skip_table(unsigned char *html, unsigned char *eof) while (1) { unsigned char *name; - int namelen; + int namelen, closing_tag = 0; while (html < eof && (*html != '<' @@ -518,11 +518,18 @@ skip_table(unsigned char *html, unsigned char *eof) if (html >= eof) return eof; + if (*name == '/') { + closing_tag = 1; + name++; namelen--; + } + if (!strlcasecmp(name, namelen, "TABLE", 5)) { - level++; - } else if (!strlcasecmp(name, namelen, "/TABLE", 6)) { - level--; - if (!level) return html; + if (!closing_tag) { + level++; + } else { + level--; + if (!level) return html; + } } } }