[BACK]Return to tbl_data.c CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Diff for /mandoc/tbl_data.c between version 1.37 and 1.42

version 1.37, 2015/01/30 02:09:04 version 1.42, 2017/06/08 18:11:22
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2015 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2011, 2015, 2017 Ingo Schwarze <schwarze@openbsd.org>
  *   *
  * Permission to use, copy, modify, and distribute this software for any   * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above   * purpose with or without fee is hereby granted, provided that the above
Line 44  getdata(struct tbl_node *tbl, struct tbl_span *dp,
Line 44  getdata(struct tbl_node *tbl, struct tbl_span *dp,
         struct tbl_cell *cp;          struct tbl_cell *cp;
         int              sv;          int              sv;
   
         cp = dp->last == NULL ? dp->layout->first : dp->last->layout->next;          /* Advance to the next layout cell, skipping spanners. */
   
         /*          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.  
          */  
   
         while (cp != NULL && cp->pos == TBL_CELL_SPAN)          while (cp != NULL && cp->pos == TBL_CELL_SPAN)
                 cp = cp->next;                  cp = cp->next;
   
Line 136  tbl_cdata(struct tbl_node *tbl, int ln, const char *p,
Line 132  tbl_cdata(struct tbl_node *tbl, int ln, const char *p,
                 if (p[pos] == tbl->opts.tab) {                  if (p[pos] == tbl->opts.tab) {
                         tbl->part = TBL_PART_DATA;                          tbl->part = TBL_PART_DATA;
                         pos++;                          pos++;
                         getdata(tbl, tbl->last_span, ln, p, &pos);                          while (p[pos] != '\0')
                         return(1);                                  getdata(tbl, tbl->last_span, ln, p, &pos);
                           return 1;
                 } else if (p[pos] == '\0') {                  } else if (p[pos] == '\0') {
                         tbl->part = TBL_PART_DATA;                          tbl->part = TBL_PART_DATA;
                         return(1);                          return 1;
                 }                  }
   
                 /* Fallthrough: T} is part of a word. */                  /* Fallthrough: T} is part of a word. */
         }          }
   
         dat->pos = TBL_DATA_DATA;          dat->pos = TBL_DATA_DATA;
           dat->block = 1;
   
         if (dat->string != NULL) {          if (dat->string != NULL) {
                 sz = strlen(p + pos) + strlen(dat->string) + 2;                  sz = strlen(p + pos) + strlen(dat->string) + 2;
Line 160  tbl_cdata(struct tbl_node *tbl, int ln, const char *p,
Line 158  tbl_cdata(struct tbl_node *tbl, int ln, const char *p,
                 mandoc_msg(MANDOCERR_TBLDATA_SPAN, tbl->parse,                  mandoc_msg(MANDOCERR_TBLDATA_SPAN, tbl->parse,
                     ln, pos, dat->string);                      ln, pos, dat->string);
   
         return(0);          return 0;
 }  }
   
 static struct tbl_span *  static struct tbl_span *
Line 172  newspan(struct tbl_node *tbl, int line, struct tbl_row
Line 170  newspan(struct tbl_node *tbl, int line, struct tbl_row
         dp->line = line;          dp->line = line;
         dp->opts = &tbl->opts;          dp->opts = &tbl->opts;
         dp->layout = rp;          dp->layout = rp;
         dp->head = tbl->first_head;  
         dp->prev = tbl->last_span;          dp->prev = tbl->last_span;
   
         if (dp->prev == NULL) {          if (dp->prev == NULL) {
                 tbl->first_span = dp;                  tbl->first_span = dp;
                 tbl->current_span = NULL;                  tbl->current_span = NULL;
                 dp->flags |= TBL_SPAN_FIRST;  
         } else          } else
                 dp->prev->next = dp;                  dp->prev->next = dp;
         tbl->last_span = dp;          tbl->last_span = dp;
   
         return(dp);          return dp;
 }  }
   
 void  void

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.42

CVSweb