[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.56 and 1.57

version 1.56, 2021/08/10 12:55:04 version 1.57, 2021/09/07 11:48:19
Line 47  getdata(struct tbl_node *tbl, struct tbl_span *dp,
Line 47  getdata(struct tbl_node *tbl, struct tbl_span *dp,
         struct tbl_cell *cp;          struct tbl_cell *cp;
         struct tbl_span *pdp;          struct tbl_span *pdp;
         const char      *ccp;          const char      *ccp;
         int              sv;          int              startpos, endpos;
   
         /*          /*
          * Determine the length of the string in the cell           * Determine the length of the string in the cell
          * and advance the parse point to the end of the cell.           * and advance the parse point to the end of the cell.
          */           */
   
         sv = *pos;          startpos = *pos;
         ccp = p + sv;          ccp = p + startpos;
         while (*ccp != '\0' && *ccp != tbl->opts.tab)          while (*ccp != '\0' && *ccp != tbl->opts.tab)
                 if (*ccp++ == '\\')                  if (*ccp++ == '\\')
                         mandoc_escape(&ccp, NULL, NULL);                          mandoc_escape(&ccp, NULL, NULL);
Line 85  getdata(struct tbl_node *tbl, struct tbl_span *dp,
Line 85  getdata(struct tbl_node *tbl, struct tbl_span *dp,
                         dp->layout->last = cp;                          dp->layout->last = cp;
                 } else {                  } else {
                         mandoc_msg(MANDOCERR_TBLDATA_EXTRA,                          mandoc_msg(MANDOCERR_TBLDATA_EXTRA,
                             ln, sv, "%s", p + sv);                              ln, startpos, "%s", p + startpos);
                         while (p[*pos] != '\0')                          while (p[*pos] != '\0')
                                 (*pos)++;                                  (*pos)++;
                         return;                          return;
Line 110  getdata(struct tbl_node *tbl, struct tbl_span *dp,
Line 110  getdata(struct tbl_node *tbl, struct tbl_span *dp,
          */           */
   
         if (cp->pos == TBL_CELL_DOWN ||          if (cp->pos == TBL_CELL_DOWN ||
             (*pos - sv == 2 && p[sv] == '\\' && p[sv + 1] == '^')) {              (*pos - startpos == 2 &&
                p[startpos] == '\\' && p[startpos + 1] == '^')) {
                 pdp = dp;                  pdp = dp;
                 while ((pdp = pdp->prev) != NULL) {                  while ((pdp = pdp->prev) != NULL) {
                         pdat = pdp->first;                          pdat = pdp->first;
Line 152  getdata(struct tbl_node *tbl, struct tbl_span *dp,
Line 153  getdata(struct tbl_node *tbl, struct tbl_span *dp,
          * until a standalone `T}', are included in our cell.           * until a standalone `T}', are included in our cell.
          */           */
   
         if (*pos - sv == 2 && p[sv] == 'T' && p[sv + 1] == '{') {          if (*pos - startpos == 2 &&
               p[startpos] == 'T' && p[startpos + 1] == '{') {
                 tbl->part = TBL_PART_CDATA;                  tbl->part = TBL_PART_CDATA;
                 return;                  return;
         }          }
   
         dat->string = mandoc_strndup(p + sv, *pos - sv);          endpos = *pos;
           if (dp->opts->opts & TBL_OPT_NOSPACE) {
                   while (p[startpos] == ' ')
                           startpos++;
                   while (endpos > startpos && p[endpos - 1] == ' ')
                           endpos--;
           }
           dat->string = mandoc_strndup(p + startpos, endpos - startpos);
   
         if (p[*pos] != '\0')          if (p[*pos] != '\0')
                 (*pos)++;                  (*pos)++;
Line 178  getdata(struct tbl_node *tbl, struct tbl_span *dp,
Line 187  getdata(struct tbl_node *tbl, struct tbl_span *dp,
             dat->layout->pos == TBL_CELL_DOWN) &&              dat->layout->pos == TBL_CELL_DOWN) &&
             dat->pos == TBL_DATA_DATA && *dat->string != '\0')              dat->pos == TBL_DATA_DATA && *dat->string != '\0')
                 mandoc_msg(MANDOCERR_TBLDATA_SPAN,                  mandoc_msg(MANDOCERR_TBLDATA_SPAN,
                     ln, sv, "%s", dat->string);                      ln, startpos, "%s", dat->string);
 }  }
   
 void  void

Legend:
Removed from v.1.56  
changed lines
  Added in v.1.57

CVSweb