[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.43 and 1.44

version 1.43, 2015/10/12 00:08:16 version 1.44, 2017/06/04 22:44:15
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2012, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2011,2012,2014,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 63  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 63  term_tbl(struct termp *tp, const struct tbl_span *sp)
         const struct tbl_cell   *cp;          const struct tbl_cell   *cp;
         const struct tbl_dat    *dp;          const struct tbl_dat    *dp;
         static size_t            offset;          static size_t            offset;
         size_t                   rmargin, maxrmargin, tsz;          size_t                   tsz;
         int                      ic, horiz, spans, vert;          int                      ic, horiz, spans, vert;
   
         rmargin = tp->rmargin;  
         maxrmargin = tp->maxrmargin;  
   
         tp->rmargin = tp->maxrmargin = TERM_MAXMARGIN;  
   
         /* Inhibit printing of spaces: we do padding ourselves. */          /* Inhibit printing of spaces: we do padding ourselves. */
   
         tp->flags |= TERMP_NONOSPACE;          tp->flags |= TERMP_NOSPACE | TERMP_NONOSPACE | TERMP_BRNEVER;
         tp->flags |= TERMP_NOSPACE;  
   
         /*          /*
          * The first time we're invoked for a given table block,           * The first time we're invoked for a given table block,
Line 86  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 80  term_tbl(struct termp *tp, const struct tbl_span *sp)
                 tp->tbl.slen = term_tbl_strlen;                  tp->tbl.slen = term_tbl_strlen;
                 tp->tbl.arg = tp;                  tp->tbl.arg = tp;
   
                 tblcalc(&tp->tbl, sp, rmargin - tp->offset);                  tblcalc(&tp->tbl, sp, tp->rmargin - tp->offset);
   
                 /* Center the table as a whole. */                  /* Center the table as a whole. */
   
Line 97  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 91  term_tbl(struct termp *tp, const struct tbl_span *sp)
                         for (ic = 0; ic < sp->opts->cols; ic++)                          for (ic = 0; ic < sp->opts->cols; ic++)
                                 tsz += tp->tbl.cols[ic].width + 3;                                  tsz += tp->tbl.cols[ic].width + 3;
                         tsz -= 3;                          tsz -= 3;
                         if (offset + tsz > rmargin)                          if (offset + tsz > tp->rmargin)
                                 tsz -= 1;                                  tsz -= 1;
                         tp->offset = (offset + rmargin > tsz) ?                          tp->offset = (offset + tp->rmargin > tsz) ?
                             (offset + rmargin - tsz) / 2 : 0;                              (offset + tp->rmargin - tsz) / 2 : 0;
                 }                  }
   
                 /* Horizontal frame at the start of boxed tables. */                  /* Horizontal frame at the start of boxed tables. */
Line 201  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 195  term_tbl(struct termp *tp, const struct tbl_span *sp)
                 tp->tbl.cols = NULL;                  tp->tbl.cols = NULL;
                 tp->offset = offset;                  tp->offset = offset;
         }          }
           tp->flags &= ~(TERMP_NONOSPACE | TERMP_BRNEVER);
         tp->flags &= ~TERMP_NONOSPACE;  
         tp->rmargin = rmargin;  
         tp->maxrmargin = maxrmargin;  
 }  }
   
 /*  /*

Legend:
Removed from v.1.43  
changed lines
  Added in v.1.44

CVSweb