diff options
author | Ingo Schwarze <schwarze@openbsd.org> | 2015-01-21 00:47:04 +0000 |
---|---|---|
committer | Ingo Schwarze <schwarze@openbsd.org> | 2015-01-21 00:47:04 +0000 |
commit | 131c1facdcd489bdadc435c8b52a339b53475bc3 (patch) | |
tree | 484864e88a5923409e5ba70c17759426027088dd /tbl_data.c | |
parent | fc0d6eeb0bd99d04344d750b1d0008087d558348 (diff) | |
download | mandoc-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.c | 34 |
1 files changed, 12 insertions, 22 deletions
@@ -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); } |