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

Diff for /mandoc/tbl_term.c between version 1.60 and 1.61

version 1.60, 2018/08/19 23:10:28 version 1.61, 2018/11/25 19:24:20
Line 77  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 77  term_tbl(struct termp *tp, const struct tbl_span *sp)
         const struct tbl_dat    *dp;          const struct tbl_dat    *dp;
         static size_t            offset;          static size_t            offset;
         size_t                   coloff, tsz;          size_t                   coloff, tsz;
         int                      ic, horiz, spans, vert, more;          int                      ic, horiz, hspans, vert, more;
         char                     fc;          char                     fc;
   
         /* Inhibit printing of spaces: we do padding ourselves. */          /* Inhibit printing of spaces: we do padding ourselves. */
Line 157  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 157  term_tbl(struct termp *tp, const struct tbl_span *sp)
                 /* Set up the data columns. */                  /* Set up the data columns. */
   
                 dp = sp->first;                  dp = sp->first;
                 spans = 0;                  hspans = 0;
                 for (ic = 0; ic < sp->opts->cols; ic++) {                  for (ic = 0; ic < sp->opts->cols; ic++) {
                         if (spans == 0) {                          if (hspans == 0) {
                                 tp->tcol++;                                  tp->tcol++;
                                 tp->tcol->offset = coloff;                                  tp->tcol->offset = coloff;
                         }                          }
Line 167  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 167  term_tbl(struct termp *tp, const struct tbl_span *sp)
                         tp->tcol->rmargin = coloff;                          tp->tcol->rmargin = coloff;
                         if (ic + 1 < sp->opts->cols)                          if (ic + 1 < sp->opts->cols)
                                 coloff += tp->tbl.cols[ic].spacing;                                  coloff += tp->tbl.cols[ic].spacing;
                         if (spans) {                          if (hspans) {
                                 spans--;                                  hspans--;
                                 continue;                                  continue;
                         }                          }
                         if (dp == NULL)                          if (dp == NULL)
                                 continue;                                  continue;
                         spans = dp->spans;                          hspans = dp->hspans;
                         if (ic || sp->layout->first->pos != TBL_CELL_SPAN)                          if (ic || sp->layout->first->pos != TBL_CELL_SPAN)
                                 dp = dp->next;                                  dp = dp->next;
                 }                  }
Line 193  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 193  term_tbl(struct termp *tp, const struct tbl_span *sp)
                 tp->tcol = tp->tcols;                  tp->tcol = tp->tcols;
                 cp = cpn = sp->layout->first;                  cp = cpn = sp->layout->first;
                 dp = sp->first;                  dp = sp->first;
                 spans = 0;                  hspans = 0;
                 for (ic = 0; ic < sp->opts->cols; ic++) {                  for (ic = 0; ic < sp->opts->cols; ic++) {
                         if (cpn != NULL) {                          if (cpn != NULL) {
                                 cp = cpn;                                  cp = cpn;
                                 cpn = cpn->next;                                  cpn = cpn->next;
                         }                          }
                         if (spans) {                          if (hspans) {
                                 spans--;                                  hspans--;
                                 continue;                                  continue;
                         }                          }
                         tp->tcol++;                          tp->tcol++;
Line 208  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 208  term_tbl(struct termp *tp, const struct tbl_span *sp)
                         tbl_data(tp, sp->opts, cp, dp, tp->tbl.cols + ic);                          tbl_data(tp, sp->opts, cp, dp, tp->tbl.cols + ic);
                         if (dp == NULL)                          if (dp == NULL)
                                 continue;                                  continue;
                         spans = dp->spans;                          hspans = dp->hspans;
                         if (cp->pos != TBL_CELL_SPAN)                          if (cp->pos != TBL_CELL_SPAN)
                                 dp = dp->next;                                  dp = dp->next;
                 }                  }
Line 249  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 249  term_tbl(struct termp *tp, const struct tbl_span *sp)
                         cpp = sp->prev == NULL ? NULL :                          cpp = sp->prev == NULL ? NULL :
                             sp->prev->layout->first;                              sp->prev->layout->first;
                         dp = sp->first;                          dp = sp->first;
                         spans = 0;                          hspans = 0;
                         for (ic = 0; ic < sp->opts->cols; ic++) {                          for (ic = 0; ic < sp->opts->cols; ic++) {
   
                                 /*                                  /*
Line 304  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 304  term_tbl(struct termp *tp, const struct tbl_span *sp)
                                  * and advance to next data cell.                                   * and advance to next data cell.
                                  */                                   */
   
                                 if (spans) {                                  if (hspans) {
                                         spans--;                                          hspans--;
                                         continue;                                          continue;
                                 }                                  }
                                 if (dp != NULL) {                                  if (dp != NULL) {
                                         spans = dp->spans;                                          hspans = dp->hspans;
                                         if (ic || sp->layout->first->pos                                          if (ic || sp->layout->first->pos
                                             != TBL_CELL_SPAN)                                              != TBL_CELL_SPAN)
                                                 dp = dp->next;                                                  dp = dp->next;
Line 592  tbl_literal(struct termp *tp, const struct tbl_dat *dp
Line 592  tbl_literal(struct termp *tp, const struct tbl_dat *dp
                 const struct roffcol *col)                  const struct roffcol *col)
 {  {
         size_t           len, padl, padr, width;          size_t           len, padl, padr, width;
         int              ic, spans;          int              ic, hspans;
   
         assert(dp->string);          assert(dp->string);
         len = term_strlen(tp, dp->string);          len = term_strlen(tp, dp->string);
         width = col->width;          width = col->width;
         ic = dp->layout->col;          ic = dp->layout->col;
         spans = dp->spans;          hspans = dp->hspans;
         while (spans--)          while (hspans--)
                 width += tp->tbl.cols[++ic].width + 3;                  width += tp->tbl.cols[++ic].width + 3;
   
         padr = width > len ? width - len : 0;          padr = width > len ? width - len : 0;

Legend:
Removed from v.1.60  
changed lines
  Added in v.1.61

CVSweb