summaryrefslogtreecommitdiffstats
path: root/tbl_data.c
diff options
context:
space:
mode:
authorIngo Schwarze <schwarze@openbsd.org>2015-01-21 00:47:04 +0000
committerIngo Schwarze <schwarze@openbsd.org>2015-01-21 00:47:04 +0000
commit131c1facdcd489bdadc435c8b52a339b53475bc3 (patch)
tree484864e88a5923409e5ba70c17759426027088dd /tbl_data.c
parentfc0d6eeb0bd99d04344d750b1d0008087d558348 (diff)
downloadmandoc-131c1facdcd489bdadc435c8b52a339b53475bc3.tar.gz
blank lines in tables do not need special handling; simplifies code
and reduces groff/mandoc differences in OpenBSD base by about 1%
Diffstat (limited to 'tbl_data.c')
-rw-r--r--tbl_data.c34
1 files changed, 12 insertions, 22 deletions
diff --git a/tbl_data.c b/tbl_data.c
index da4b11b7..33a91e86 100644
--- a/tbl_data.c
+++ b/tbl_data.c
@@ -30,13 +30,13 @@
#include "libmandoc.h"
#include "libroff.h"
-static int getdata(struct tbl_node *, struct tbl_span *,
+static void getdata(struct tbl_node *, struct tbl_span *,
int, const char *, int *);
static struct tbl_span *newspan(struct tbl_node *, int,
struct tbl_row *);
-static int
+static void
getdata(struct tbl_node *tbl, struct tbl_span *dp,
int ln, const char *p, int *pos)
{
@@ -69,7 +69,7 @@ getdata(struct tbl_node *tbl, struct tbl_span *dp,
/* Skip to the end... */
while (p[*pos])
(*pos)++;
- return(1);
+ return;
}
dat = mandoc_calloc(1, sizeof(struct tbl_dat));
@@ -104,7 +104,7 @@ getdata(struct tbl_node *tbl, struct tbl_span *dp,
if (*pos - sv == 2 && 'T' == p[sv] && '{' == p[sv + 1]) {
tbl->part = TBL_PART_CDATA;
- return(1);
+ return;
}
assert(*pos - sv >= 0);
@@ -134,7 +134,7 @@ getdata(struct tbl_node *tbl, struct tbl_span *dp,
mandoc_msg(MANDOCERR_TBLIGNDATA,
tbl->parse, ln, sv, NULL);
- return(1);
+ return;
}
int
@@ -153,7 +153,8 @@ tbl_cdata(struct tbl_node *tbl, int ln, const char *p)
if (p[pos] == tbl->opts.tab) {
tbl->part = TBL_PART_DATA;
pos++;
- return(getdata(tbl, tbl->last_span, ln, p, &pos));
+ getdata(tbl, tbl->last_span, ln, p, &pos);
+ return(1);
} else if ('\0' == p[pos]) {
tbl->part = TBL_PART_DATA;
return(1);
@@ -202,20 +203,13 @@ newspan(struct tbl_node *tbl, int line, struct tbl_row *rp)
return(dp);
}
-int
+void
tbl_data(struct tbl_node *tbl, int ln, const char *p)
{
struct tbl_span *dp;
struct tbl_row *rp;
int pos;
- pos = 0;
-
- if ('\0' == p[pos]) {
- mandoc_msg(MANDOCERR_TBL, tbl->parse, ln, pos, NULL);
- return(0);
- }
-
/*
* Choose a layout row: take the one following the last parsed
* span's. If that doesn't exist, use the last parsed span's.
@@ -257,19 +251,15 @@ tbl_data(struct tbl_node *tbl, int ln, const char *p)
if ( ! strcmp(p, "_")) {
dp->pos = TBL_SPAN_HORIZ;
- return(1);
+ return;
} else if ( ! strcmp(p, "=")) {
dp->pos = TBL_SPAN_DHORIZ;
- return(1);
+ return;
}
dp->pos = TBL_SPAN_DATA;
- /* This returns 0 when TBL_PART_CDATA is entered. */
-
+ pos = 0;
while ('\0' != p[pos])
- if ( ! getdata(tbl, dp, ln, p, &pos))
- return(0);
-
- return(1);
+ getdata(tbl, dp, ln, p, &pos);
}