URI: 
       thide tag if DisplayNone, separate white-space handling - webdump - [FORK] git://git.codemadness.org/webdump
  HTML git clone git://git.z3bra.org/webdump.git
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit e4a9e2404be2db1687430631e912f1809992a23b
   DIR parent 4fea38d503fe668601fef6ffc9b21c94e24c542e
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Sat, 21 Sep 2019 19:14:40 +0200
       
       hide tag if DisplayNone, separate white-space handling
       
       Diffstat:
         M TODO                                |       2 +-
         M main.c                              |      19 +++++++++----------
       
       2 files changed, 10 insertions(+), 11 deletions(-)
       ---
   DIR diff --git a/TODO b/TODO
       t@@ -1,10 +1,10 @@
        - base href.
          specify and parse relative url, allow to specify base and also parse <base href="">
       +- handle whitespace, and tag types properly: atleast: inline-block, inline, block, pre.
        - detect <link /> to RSS/Atom feed, show as link.
          example: <link rel="alternate" href="atom.xml" type="application/atom+xml" title="Codemadness Atom Feed" />
          or
          <link rel="alternate" title="Tweakers Mixed RSS feed" type="application/rss+xml" href="https://tweakers.net/feeds/mixed.xml">
       -- handle whitespace, and tag types properly: atleast: inline-block, inline, block, pre
        - print safe (not certain control chars, except newline, TAB etc).
        - improve/remove duplicate white-space/newlines?
        - <code> should not be treated as a block (<pre> does?)
   DIR diff --git a/main.c b/main.c
       t@@ -390,7 +390,6 @@ absuri(char *buf, size_t bufsiz, const char *link, const char *base)
                return encodeuri(buf, bufsiz, tmp);
        }
        
       -
        static void
        xmlcdata(XMLParser *p, const char *data, size_t datalen)
        {
       t@@ -409,19 +408,19 @@ xmldataend(XMLParser *p)
                struct node *cur;
                char *start, *s, *e;
        
       -        cur = &nodes[curnode];
                if (!htmldata.data || !htmldata.len)
                        return;
        
       -        start = htmldata.data;
       -
       -        /* TODO: white-space handling */
       -        s = start;
       -        e = s + strlen(s);
       -
       -        if (cur->displaytype & DisplayPre) {
       -                fwrite(s, 1, e - s, stdout);
       +        cur = &nodes[curnode];
       +        if (cur->displaytype & DisplayNone) {
       +                /* nothing */
       +        } else if (cur->displaytype & DisplayPre) {
       +                fwrite(htmldata.data, 1, htmldata.len, stdout);
                } else {
       +                start = htmldata.data;
       +                s = start;
       +                e = s + htmldata.len;
       +                /* TODO: better white-space handling */
                        for (; s < e; s++) {
                                if (isspace((unsigned char)*s)) {
                                        if (s != start && !isspace((unsigned char)s[-1]))