aboutsummaryrefslogtreecommitdiffstatshomepage
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
commitf226d0c041ab711f61ea445f2e8826262e4e7f8a (patch)
tree42805e810f34ae2dd1c7a649ddaa2474bd72e683 /tbl_data.c
parent03eb100b63b3e72e275bbf3e47c2fefc8d912b18 (diff)
downloadmandoc-f226d0c041ab711f61ea445f2e8826262e4e7f8a.tar.gz
mandoc-f226d0c041ab711f61ea445f2e8826262e4e7f8a.tar.zst
mandoc-f226d0c041ab711f61ea445f2e8826262e4e7f8a.zip
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.c36
1 files changed, 13 insertions, 23 deletions
diff --git a/tbl_data.c b/tbl_data.c
index 43244dab..16a8533c 100644
--- a/tbl_data.c
+++ b/tbl_data.c
@@ -1,4 +1,4 @@
-/* $Id: tbl_data.c,v 1.32 2014/08/10 23:54:41 schwarze Exp $ */
+/* $Id: tbl_data.c,v 1.33 2015/01/21 00:47:04 schwarze Exp $ */
/*
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
* Copyright (c) 2011 Ingo Schwarze <schwarze@openbsd.org>
@@ -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);
}