aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tbl.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2015-01-28 15:03:45 +0000
committerIngo Schwarze <schwarze@openbsd.org>2015-01-28 15:03:45 +0000
commit7793230177d864fb80c0c572a2b896f3ecb7df10 (patch)
tree9200fdac5fa9fae03f349e62032d6041b10d54d3 /tbl.c
parentc49d930f6dcda366d67ac4b3bad9cc05ac3bc954 (diff)
downloadmandoc-7793230177d864fb80c0c572a2b896f3ecb7df10.tar.gz
mandoc-7793230177d864fb80c0c572a2b896f3ecb7df10.tar.zst
mandoc-7793230177d864fb80c0c572a2b896f3ecb7df10.zip
For now, it can't be helped that mandoc tbl(7) ignores high-level macros,
but stop throwing away their arguments. This fixes information loss in a handful of Xenocara manuals, at the price of a small amount of formatting noise creeping through.
Diffstat (limited to 'tbl.c')
-rw-r--r--tbl.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/tbl.c b/tbl.c
index bd8fc99c..c183750f 100644
--- a/tbl.c
+++ b/tbl.c
@@ -1,4 +1,4 @@
-/* $Id: tbl.c,v 1.34 2015/01/27 05:21:45 schwarze Exp $ */
+/* $Id: tbl.c,v 1.35 2015/01/28 15:03:45 schwarze Exp $ */
/*
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011, 2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -32,7 +32,7 @@
enum rofferr
-tbl_read(struct tbl_node *tbl, int ln, const char *p, int offs)
+tbl_read(struct tbl_node *tbl, int ln, const char *p, int pos)
{
const char *cp;
int active;
@@ -46,7 +46,7 @@ tbl_read(struct tbl_node *tbl, int ln, const char *p, int offs)
if (tbl->part == TBL_PART_OPTS) {
tbl->part = TBL_PART_LAYOUT;
active = 1;
- for (cp = p; *cp != '\0'; cp++) {
+ for (cp = p + pos; *cp != '\0'; cp++) {
switch (*cp) {
case '(':
active = 0;
@@ -64,8 +64,8 @@ tbl_read(struct tbl_node *tbl, int ln, const char *p, int offs)
break;
}
if (*cp == ';') {
- tbl_option(tbl, ln, p);
- if (*(p = cp + 1) == '\0')
+ tbl_option(tbl, ln, p, &pos);
+ if (p[pos] == '\0')
return(ROFF_IGN);
}
}
@@ -74,15 +74,15 @@ tbl_read(struct tbl_node *tbl, int ln, const char *p, int offs)
switch (tbl->part) {
case TBL_PART_LAYOUT:
- tbl_layout(tbl, ln, p);
+ tbl_layout(tbl, ln, p, pos);
return(ROFF_IGN);
case TBL_PART_CDATA:
- return(tbl_cdata(tbl, ln, p) ? ROFF_TBL : ROFF_IGN);
+ return(tbl_cdata(tbl, ln, p, pos) ? ROFF_TBL : ROFF_IGN);
default:
break;
}
- tbl_data(tbl, ln, p);
+ tbl_data(tbl, ln, p, pos);
return(ROFF_TBL);
}