URI: 
       tTranslate semantic tags to ANSI escapes - 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 c19b45dfe23bfa615aa965c574ae8f6e7a9864ec
   DIR parent 5f9f773188b1302892021161d0656bb57e0323c0
  HTML Author: Hiltjo Posthuma <hiltjo@codemadness.org>
       Date:   Wed, 20 Nov 2019 23:48:54 +0100
       
       Translate semantic tags to ANSI escapes
       
       Based on ideas from z3bra, thanks.
       
       Refactored a bit to make it more generic and reuse.
       
       Diffstat:
         M webdump.c                           |      23 ++++++++++++++++++-----
       
       1 file changed, 18 insertions(+), 5 deletions(-)
       ---
   DIR diff --git a/webdump.c b/webdump.c
       t@@ -59,6 +59,9 @@ enum DisplayType {
                DisplayTableRow    = 512,
                DisplayTableCell   = 1024,
                DisplayHeader      = 2048,
       +        DisplayBold        = 4096,
       +        DisplayItalic      = 8192,
       +        DisplayUnderline   = 16384,
        };
        
        struct tag {
       t@@ -107,12 +110,12 @@ static struct tag tags[] = {
                { "pre", DisplayPre },
                { "code", DisplayPre },
                /* inline */
       +        { "b",      DisplayInline | DisplayBold },
       +        { "i",      DisplayInline | DisplayItalic },
       +        { "u",      DisplayInline | DisplayUnderline },
       +        { "strong", DisplayInline | DisplayBold },
       +        { "em",     DisplayInline | DisplayItalic },
        #if 0
       -        { "b", DisplayInline },
       -        { "i", DisplayInline },
       -        { "u", DisplayInline },
       -        { "strong", DisplayInline },
       -        { "em", DisplayInline },
                { "a", DisplayInline },
                { "span", DisplayInline },
                { "img", DisplayInline },
       t@@ -609,6 +612,9 @@ xmltagend(XMLParser *p, const char *t, size_t tl, int isshort)
                        }
                }
        
       +        if (cur->tag.displaytype & (DisplayBold | DisplayItalic | DisplayUnderline))
       +                fputs("\033[0m", stdout); /* reset */
       +
                /* specific tag handling */
                if (!strcasecmp(t, "br")) {
                        newline();
       t@@ -711,6 +717,13 @@ xmltagstartparsed(XMLParser *p, const char *t, size_t tl, int isshort)
                        }
                }
        
       +        if (cur->tag.displaytype & DisplayBold)
       +                fputs("\033[1m", stdout);
       +        if (cur->tag.displaytype & DisplayItalic)
       +                fputs("\033[3m", stdout);
       +        if (cur->tag.displaytype & DisplayUnderline)
       +                fputs("\033[4m", stdout);
       +
                /* specific tag handling */
                if (!strcasecmp(t, "hr")) { /* ruler */
                        for (i = 0; i < termwidth; i++)