From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from krisdoz.my.domain (kristaps@localhost [127.0.0.1]) by krisdoz.my.domain (8.14.3/8.14.3) with ESMTP id p07D3miR032482 for ; Fri, 7 Jan 2011 08:03:49 -0500 (EST) Received: (from kristaps@localhost) by krisdoz.my.domain (8.14.3/8.14.3/Submit) id p07D3mxN016414; Fri, 7 Jan 2011 08:03:48 -0500 (EST) Date: Fri, 7 Jan 2011 08:03:48 -0500 (EST) Message-Id: <201101071303.p07D3mxN016414@krisdoz.my.domain> X-Mailinglist: mdocml-source Reply-To: source@mdocml.bsd.lv MIME-Version: 1.0 From: kristaps@mdocml.bsd.lv To: source@mdocml.bsd.lv Subject: mdocml: Tiny bits in place for tbl horizontal spans. X-Mailer: activitymail 1.26, http://search.cpan.org/dist/activitymail/ Content-Type: text/plain; charset=utf-8 Log Message: ----------- Tiny bits in place for tbl horizontal spans. This will wait for the next release to be implemented in full. Modified Files: -------------- mdocml: tbl_data.c tbl_layout.c Revision Data ------------- Index: tbl_data.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/tbl_data.c,v retrieving revision 1.11 retrieving revision 1.12 diff -Ltbl_data.c -Ltbl_data.c -u -p -r1.11 -r1.12 --- tbl_data.c +++ tbl_data.c @@ -45,10 +45,14 @@ data(struct tbl_node *tbl, struct tbl_sp else if (NULL == dp->last) cp = dp->layout->first; - /* Skip over spanners to data formats. */ + /* + * Skip over spanners and vertical lines to data formats, since + * we want to match data with data layout cells in the header. + */ while (cp && (TBL_CELL_VERT == cp->pos || - TBL_CELL_DVERT == cp->pos)) + TBL_CELL_DVERT == cp->pos || + TBL_CELL_SPAN == cp->pos)) cp = cp->next; dat = mandoc_calloc(1, sizeof(struct tbl_dat)); Index: tbl_layout.c =================================================================== RCS file: /usr/vhosts/mdocml.bsd.lv/cvs/mdocml/tbl_layout.c,v retrieving revision 1.10 retrieving revision 1.11 diff -Ltbl_layout.c -Ltbl_layout.c -u -p -r1.10 -r1.11 --- tbl_layout.c +++ tbl_layout.c @@ -29,6 +29,12 @@ struct tbl_phrase { enum tbl_cellt key; }; +/* + * FIXME: we can make this parse a lot nicer by, when an error is + * encountered in a layout key, bailing to the next key (i.e. to the + * next whitespace then continuing). + */ + #define KEYS_MAX 11 static const struct tbl_phrase keys[KEYS_MAX] = { @@ -173,8 +179,19 @@ cell(struct tbl_node *tbl, struct tbl_ro return(0); } - (*pos)++; c = keys[i].key; + + /* + * If a span cell is found first, raise a warning and abort the + * parse. FIXME: recover from this somehow? + */ + + if (NULL == rp->first && TBL_CELL_SPAN == c) { + TBL_MSG(tbl, MANDOCERR_TBLLAYOUT, ln, *pos); + return(0); + } + + (*pos)++; /* Extra check for the double-vertical. */ -- To unsubscribe send an email to source+unsubscribe@mdocml.bsd.lv