tsupport th (hack), disable ignore tags for now (requires parser change) - webdump - [FORK] git://git.codemadness.org/webdump
(HTM) git clone git://git.z3bra.org/webdump.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit dacc8c21011cdd6f6c9dc4ebd177478b2151a2c1
(DIR) parent 114efd43e79a417abbda2e8c427d9dd57b482bce
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Sun, 20 Aug 2017 20:19:56 +0200
support th (hack), disable ignore tags for now (requires parser change)
Diffstat:
M main.c | 30 +++++++++++++++++++-----------
1 file changed, 19 insertions(+), 11 deletions(-)
---
(DIR) diff --git a/main.c b/main.c
t@@ -19,7 +19,7 @@ static XMLParser parser;
struct node {
char tag[256];
- int isignore;
+/* int isignore;*/
int ispre;
int isinline;
int isblock;
t@@ -61,6 +61,7 @@ static char *inlinetags[] = {
"span",
"img",
"td",
+ "th",
};
static char *blocktags[] = {
t@@ -178,7 +179,7 @@ xmldataend(XMLParser *p)
if (cur->ispre) {
fwrite(s, 1, e - s, stdout);
} else {
-#if 0
+#if 1
for (; s < e; s++) {
if (isspace(*s)) {
if (s != start && !isspace(s[-1]))
t@@ -190,7 +191,7 @@ xmldataend(XMLParser *p)
if (s != start && e != start && !isspace(s[-1]) && isspace(e[-1]))
putchar(' ');
#endif
- printf("DEBUG: |%s|\n", start);
+/* printf("DEBUG: |%s|\n", start);*/
}
string_clear(&htmldata);
t@@ -203,8 +204,8 @@ xmldata(XMLParser *p, const char *data, size_t datalen)
cur = &nodes[curnode];
string_append(&htmldata, data, datalen);
- if (cur->isignore)
- return;
+/* if (cur->isignore)
+ return;*/
}
static void
t@@ -232,12 +233,14 @@ xmltagstart(XMLParser *p, const char *tag, size_t taglen)
src[0] = '\0'; /* src, href */
strlcpy(cur->tag, tag, sizeof(cur->tag));
+#if 0
for (i = 0; i < sizeof(ignoretags) / sizeof(*ignoretags); i++) {
if (!strcmp(ignoretags[i], tag)) {
cur->isignore = 1;
break;
}
}
+#endif
for (i = 0; i < sizeof(pretags) / sizeof(*pretags); i++) {
if (!strcmp(pretags[i], tag)) {
cur->ispre = 1;
t@@ -267,8 +270,8 @@ xmltagend(XMLParser *p, const char *tag, size_t taglen, int isshort)
if (curnode)
curnode--;
cur = &nodes[curnode];
- if (cur->isignore)
- return;
+/* if (cur->isignore)
+ return;*/
#if 0
if (src[0])
t@@ -300,13 +303,13 @@ xmltagstartparsed(XMLParser *p, const char *tag, size_t taglen, int isshort)
int i;
cur = &nodes[curnode];
- if (cur->isignore)
- return;
+/* if (cur->isignore)
+ return;*/
if (cur->isblock)
fputs("\n", stdout);
- if (!strcmp(tag, "td"))
+ if (!strcmp(tag, "td") || !strcmp(tag, "th"))
fputs(" | ", stdout); /* HACK */
if (!strcmp(cur->tag, "li")) {
t@@ -343,11 +346,13 @@ xmlattr(XMLParser *p, const char *tag, size_t taglen, const char *name,
strlcpy(src, value, sizeof(src));
}
-static size_t read_offset;
+/*static size_t readoffset;*/
int
readchar(void)
{
+ return getchar();
+#if 0
size_t i, j;
int c;
t@@ -366,6 +371,7 @@ readchar(void)
return preprocess.data[read_offset++];
}
return EOF;
+#endif
}
/* TODO: preprocess data, strip <script>, <style> etc */
t@@ -379,6 +385,7 @@ main(void)
if (pledge("stdio", NULL) < 0)
err(1, "pledge");
+#if 0
/* TODO: optimize later */
while (1) {
/* TODO: check read error */
t@@ -388,6 +395,7 @@ main(void)
buf[n] = '\0';
string_append(&preprocess, buf, n);
}
+#endif
parser.xmlattr = xmlattr;
parser.xmlcdata = xmlcdata;