=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/tbl_data.c,v retrieving revision 1.16 retrieving revision 1.17 diff -c -r1.16 -r1.17 *** src/usr.bin/mandoc/tbl_data.c 2014/03/21 22:17:01 1.16 --- src/usr.bin/mandoc/tbl_data.c 2014/04/20 16:44:44 1.17 *************** *** 1,4 **** ! /* $Id: tbl_data.c,v 1.16 2014/03/21 22:17:01 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2011 Ingo Schwarze --- 1,4 ---- ! /* $Id: tbl_data.c,v 1.17 2014/04/20 16:44:44 schwarze Exp $ */ /* * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons * Copyright (c) 2011 Ingo Schwarze *************** *** 26,38 **** #include "libmandoc.h" #include "libroff.h" ! static int 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 ! getdata(struct tbl_node *tbl, struct tbl_span *dp, int ln, const char *p, int *pos) { struct tbl_dat *dat; --- 26,39 ---- #include "libmandoc.h" #include "libroff.h" ! static int 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 ! getdata(struct tbl_node *tbl, struct tbl_span *dp, int ln, const char *p, int *pos) { struct tbl_dat *dat; *************** *** 45,51 **** else if (NULL == dp->last) cp = dp->layout->first; ! /* * Skip over spanners, since * we want to match data with data layout cells in the header. */ --- 46,52 ---- else if (NULL == dp->last) cp = dp->layout->first; ! /* * Skip over spanners, since * we want to match data with data layout cells in the header. */ *************** *** 59,66 **** */ if (NULL == cp) { ! mandoc_msg(MANDOCERR_TBLEXTRADAT, ! tbl->parse, ln, *pos, NULL); /* Skip to the end... */ while (p[*pos]) (*pos)++; --- 60,67 ---- */ if (NULL == cp) { ! mandoc_msg(MANDOCERR_TBLEXTRADAT, tbl->parse, ! ln, *pos, NULL); /* Skip to the end... */ while (p[*pos]) (*pos)++; *************** *** 78,84 **** spans++; else break; ! dat->spans = spans; if (dp->last) { --- 79,85 ---- spans++; else break; ! dat->spans = spans; if (dp->last) { *************** *** 123,143 **** dat->pos = TBL_DATA_DATA; if (TBL_CELL_HORIZ == dat->layout->pos || ! TBL_CELL_DHORIZ == dat->layout->pos || ! TBL_CELL_DOWN == dat->layout->pos) if (TBL_DATA_DATA == dat->pos && '\0' != *dat->string) ! mandoc_msg(MANDOCERR_TBLIGNDATA, ! tbl->parse, ln, sv, NULL); return(1); } - /* ARGSUSED */ int tbl_cdata(struct tbl_node *tbl, int ln, const char *p) { struct tbl_dat *dat; ! size_t sz; int pos; pos = 0; --- 124,143 ---- dat->pos = TBL_DATA_DATA; if (TBL_CELL_HORIZ == dat->layout->pos || ! TBL_CELL_DHORIZ == dat->layout->pos || ! TBL_CELL_DOWN == dat->layout->pos) if (TBL_DATA_DATA == dat->pos && '\0' != *dat->string) ! mandoc_msg(MANDOCERR_TBLIGNDATA, ! tbl->parse, ln, sv, NULL); return(1); } int tbl_cdata(struct tbl_node *tbl, int ln, const char *p) { struct tbl_dat *dat; ! size_t sz; int pos; pos = 0; *************** *** 168,176 **** } else dat->string = mandoc_strdup(p); ! if (TBL_CELL_DOWN == dat->layout->pos) ! mandoc_msg(MANDOCERR_TBLIGNDATA, ! tbl->parse, ln, pos, NULL); return(0); } --- 168,176 ---- } else dat->string = mandoc_strdup(p); ! if (TBL_CELL_DOWN == dat->layout->pos) ! mandoc_msg(MANDOCERR_TBLIGNDATA, tbl->parse, ! ln, pos, NULL); return(0); } *************** *** 212,218 **** 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. * If there's no last parsed span, use the first row. Lastly, --- 212,218 ---- 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. * If there's no last parsed span, use the first row. Lastly, *************** *** 226,236 **** for (rp = tbl->last_span->layout->next; rp && rp->first; rp = rp->next) { switch (rp->first->pos) { ! case (TBL_CELL_HORIZ): dp = newspan(tbl, ln, rp); dp->pos = TBL_SPAN_HORIZ; continue; ! case (TBL_CELL_DHORIZ): dp = newspan(tbl, ln, rp); dp->pos = TBL_SPAN_DHORIZ; continue; --- 226,236 ---- for (rp = tbl->last_span->layout->next; rp && rp->first; rp = rp->next) { switch (rp->first->pos) { ! case TBL_CELL_HORIZ: dp = newspan(tbl, ln, rp); dp->pos = TBL_SPAN_HORIZ; continue; ! case TBL_CELL_DHORIZ: dp = newspan(tbl, ln, rp); dp->pos = TBL_SPAN_DHORIZ; continue;