Introduction
Introduction Statistics Contact Development Disclaimer Help
contextual line-wrapping, disabled for now - webdump - HTML to plain-text conve…
git clone git://git.codemadness.org/webdump
Log
Files
Refs
README
LICENSE
---
commit 030644d3ff71c0708d940f9895e76ab99593f61b
parent 30a42a2ff270ef5e7ff96d8b23ed5ffbd58c665b
Author: Hiltjo Posthuma <[email protected]>
Date: Wed, 27 Sep 2023 18:53:56 +0200
contextual line-wrapping, disabled for now
Diffstat:
M webdump.c | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
---
diff --git a/webdump.c b/webdump.c
@@ -50,7 +50,7 @@ static int uniqrefs = 0; /* (-d) number unique referenc…
static int showrefinline = 0; /* (-i) show link reference number inline */
static int showurlinline = 0; /* (-I) show full link reference inline */
static int showrefbottom = 0; /* (-l) show link references at the bottom */
-static int linewrap = 0; /* (-r) line-wrapping */
+static int allowlinewrap = 0; /* (-r) line-wrapping */
static int termwidth = 77; /* (-w) terminal width */
static int resources = 0; /* (-x) write resources line-by-line to fd 3? */
@@ -240,6 +240,7 @@ static int reader_mode;
static int reader_ignore;
static enum MarkupType curmarkup; /* current markup state (bold, underline, et…
+static int linewrap; /* allow linewrap in this context */
/* selector to match (for -s and -u) */
static struct selectors *sel_hide, *sel_show;
@@ -1848,6 +1849,22 @@ xmltagend(XMLParser *p, const char *t, size_t tl, int is…
}
indent = calcindent();
+#if 0
+ /* check if linewrap is enabled, but currently is disabled and needs to
+ be restored */
+ if (allowlinewrap && !linewrap) {
+ tag = NULL;
+ for (i = curnode; i >= 0; i--) {
+ if (nodes[i].tag.id == TagTable) {
+ tag = &nodes[i].tag;
+ break;
+ }
+ }
+ if (!tag)
+ linewrap = allowlinewrap;
+ }
+#endif
+
/* restore markup of the tag we are in now */
startmarkup(nodes[curnode].tag.markuptype);
@@ -2016,6 +2033,12 @@ xmltagstartparsed(XMLParser *p, const char *t, size_t tl…
return;
}
+#if 0
+ /* disable line-wrapping inside tables */
+ if (tagid == TagTable)
+ linewrap = 0;
+#endif
+
cur = &nodes[curnode];
/* copy attributes if set */
@@ -2361,7 +2384,7 @@ main(int argc, char **argv)
showrefbottom = !showrefbottom;
break;
case 'r':
- linewrap = !linewrap;
+ allowlinewrap = !allowlinewrap;
break;
case 's':
sel_show = compileselectors(EARGF(usage()));
@@ -2385,6 +2408,8 @@ main(int argc, char **argv)
usage();
} ARGEND
+ linewrap = allowlinewrap;
+
/* initial nodes */
ncapnodes = NODE_CAP_INC;
nodes = ecalloc(ncapnodes, sizeof(*nodes));
You are viewing proxied material from codemadness.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.