]> git.cameronkatri.com Git - mandoc.git/blobdiff - tbl_data.c
Show the flags MDOC_DELIMO, MDOC_DELIMC, MDOC_EOS, and MAN_EOS.
[mandoc.git] / tbl_data.c
index c1be2f37d0903537f40a0b3d58e715d986d4556e..3be667995b99bd6226301b224d2af43842ec19db 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: tbl_data.c,v 1.37 2015/01/30 02:09:04 schwarze Exp $ */
+/*     $Id: tbl_data.c,v 1.40 2015/04/19 20:35:20 schwarze Exp $ */
 /*
  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2015 Ingo Schwarze <schwarze@openbsd.org>
@@ -44,13 +44,9 @@ getdata(struct tbl_node *tbl, struct tbl_span *dp,
        struct tbl_cell *cp;
        int              sv;
 
-       cp = dp->last == NULL ? dp->layout->first : dp->last->layout->next;
-
-       /*
-        * Skip over spanners, since
-        * we want to match data with data layout cells in the header.
-        */
+       /* Advance to the next layout cell, skipping spanners. */
 
+       cp = dp->last == NULL ? dp->layout->first : dp->last->layout->next;
        while (cp != NULL && cp->pos == TBL_CELL_SPAN)
                cp = cp->next;
 
@@ -136,7 +132,8 @@ tbl_cdata(struct tbl_node *tbl, int ln, const char *p, int pos)
                if (p[pos] == tbl->opts.tab) {
                        tbl->part = TBL_PART_DATA;
                        pos++;
-                       getdata(tbl, tbl->last_span, ln, p, &pos);
+                       while (p[pos] != '\0')
+                               getdata(tbl, tbl->last_span, ln, p, &pos);
                        return(1);
                } else if (p[pos] == '\0') {
                        tbl->part = TBL_PART_DATA;
@@ -172,13 +169,11 @@ newspan(struct tbl_node *tbl, int line, struct tbl_row *rp)
        dp->line = line;
        dp->opts = &tbl->opts;
        dp->layout = rp;
-       dp->head = tbl->first_head;
        dp->prev = tbl->last_span;
 
        if (dp->prev == NULL) {
                tbl->first_span = dp;
                tbl->current_span = NULL;
-               dp->flags |= TBL_SPAN_FIRST;
        } else
                dp->prev->next = dp;
        tbl->last_span = dp;