reduce excessive ANSI markup codes using -a - webdump - HTML to plain-text converter for webpages (HTM) git clone git://git.codemadness.org/webdump (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 8d29c76012b91bbfaad1feca31b2af4cfbc99032 (DIR) parent dc7717417afb10040e4ea5d9472cc1c2658f1c8c (HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org> Date: Tue, 12 Sep 2023 20:00:18 +0200 reduce excessive ANSI markup codes using -a Diffstat: M webdump.c | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) --- (DIR) diff --git a/webdump.c b/webdump.c @@ -677,10 +677,12 @@ hflush(void) return; if (!nbytesline) { - emitmarkup(0); + if (curmarkup) + emitmarkup(0); rindent(); /* emit code again per line, needed for GNU/less -R */ - emitmarkup(curmarkup); + if (curmarkup) + emitmarkup(curmarkup); } for (i = 0; i < rbuflen; i++) @@ -833,10 +835,12 @@ hputchar(int c) ncells = 0; } else { if (!nbytesline) { - emitmarkup(0); + if (curmarkup) + emitmarkup(0); rindent(); /* emit code again per line, needed for GNU/less -R */ - emitmarkup(curmarkup); + if (curmarkup) + emitmarkup(curmarkup); } putchar(c); nbytesline++; @@ -1020,10 +1024,12 @@ printpre(const char *s, size_t len) case '\t': hadnewline = 0; if (!nbytesline) { - emitmarkup(0); + if (curmarkup) + emitmarkup(0); rindent(); /* emit code again per line, needed for GNU/less -R */ - emitmarkup(curmarkup); + if (curmarkup) + emitmarkup(curmarkup); } /* TAB to 8 spaces */ @@ -1036,10 +1042,12 @@ printpre(const char *s, size_t len) continue; if (!nbytesline) { - emitmarkup(0); + if (curmarkup) + emitmarkup(0); rindent(); /* emit code again per line, needed for GNU/less -R */ - emitmarkup(curmarkup); + if (curmarkup) + emitmarkup(curmarkup); } putchar(*s);