[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.74 and 1.79

version 1.74, 2020/10/25 18:28:23 version 1.79, 2022/08/28 10:58:31
Line 1 
Line 1 
 /*      $Id$ */  /* $Id$ */
 /*  /*
    * Copyright (c) 2011-2022 Ingo Schwarze <schwarze@openbsd.org>
  * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2009, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011-2020 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 25 
Line 25 
 #include <stdlib.h>  #include <stdlib.h>
 #include <string.h>  #include <string.h>
   
   #if DEBUG_MEMORY
   #include "mandoc_dbg.h"
   #endif
 #include "mandoc.h"  #include "mandoc.h"
 #include "tbl.h"  #include "tbl.h"
 #include "out.h"  #include "out.h"
Line 290  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 293  term_tbl(struct termp *tp, const struct tbl_span *sp)
                         }                          }
                         tp->tcol++;                          tp->tcol++;
                         tp->col = 0;                          tp->col = 0;
                           tp->flags &= ~(TERMP_BACKAFTER | TERMP_BACKBEFORE);
                         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 &&
                             (ic || sp->layout->first->pos != TBL_CELL_SPAN)) {                              (ic || sp->layout->first->pos != TBL_CELL_SPAN)) {
Line 545  term_tbl(struct termp *tp, const struct tbl_span *sp)
Line 549  term_tbl(struct termp *tp, const struct tbl_span *sp)
         tp->flags &= ~TERMP_MULTICOL;          tp->flags &= ~TERMP_MULTICOL;
         tp->tcol->rmargin = tp->maxrmargin;          tp->tcol->rmargin = tp->maxrmargin;
         if (sp->next == NULL) {          if (sp->next == NULL) {
                 if (sp->opts->opts & (TBL_OPT_DBOX | TBL_OPT_BOX)) {                  if (sp->opts->opts & (TBL_OPT_DBOX | TBL_OPT_BOX))
                         tbl_hrule(tp, sp, sp, NULL, TBL_OPT_BOX);                          tbl_hrule(tp, sp, sp, NULL, TBL_OPT_BOX);
                         tp->skipvsp = 1;  
                 }  
                 if (tp->enc == TERMENC_ASCII &&                  if (tp->enc == TERMENC_ASCII &&
                     sp->opts->opts & TBL_OPT_DBOX) {                      sp->opts->opts & TBL_OPT_DBOX)
                         tbl_hrule(tp, sp, sp, NULL, TBL_OPT_DBOX);                          tbl_hrule(tp, sp, sp, NULL, TBL_OPT_DBOX);
                         tp->skipvsp = 2;  
                 }  
                 assert(tp->tbl.cols);                  assert(tp->tbl.cols);
                 free(tp->tbl.cols);                  free(tp->tbl.cols);
                 tp->tbl.cols = NULL;                  tp->tbl.cols = NULL;
Line 820  tbl_literal(struct termp *tp, const struct tbl_dat *dp
Line 820  tbl_literal(struct termp *tp, const struct tbl_dat *dp
         width = col->width;          width = col->width;
         ic = dp->layout->col;          ic = dp->layout->col;
         hspans = dp->hspans;          hspans = dp->hspans;
         while (hspans--)          while (hspans--) {
                 width += tp->tbl.cols[++ic].width + 3;                  width += tp->tbl.cols[ic].spacing;
                   ic++;
                   width += tp->tbl.cols[ic].width;
           }
   
         padr = width > len ? width - len : 0;          padr = width > len ? width - len : 0;
         padl = 0;          padl = 0;
Line 923  tbl_word(struct termp *tp, const struct tbl_dat *dp)
Line 926  tbl_word(struct termp *tp, const struct tbl_dat *dp)
         int              prev_font;          int              prev_font;
   
         prev_font = tp->fonti;          prev_font = tp->fonti;
         if (dp->layout->flags & TBL_CELL_BOLD)          switch (dp->layout->font) {
                 term_fontpush(tp, TERMFONT_BOLD);                  case ESCAPE_FONTBI:
         else if (dp->layout->flags & TBL_CELL_ITALIC)                          term_fontpush(tp, TERMFONT_BI);
                 term_fontpush(tp, TERMFONT_UNDER);                          break;
                   case ESCAPE_FONTBOLD:
                   case ESCAPE_FONTCB:
                           term_fontpush(tp, TERMFONT_BOLD);
                           break;
                   case ESCAPE_FONTITALIC:
                   case ESCAPE_FONTCI:
                           term_fontpush(tp, TERMFONT_UNDER);
                           break;
                   case ESCAPE_FONTROMAN:
                   case ESCAPE_FONTCR:
                           break;
                   default:
                           abort();
           }
   
         term_word(tp, dp->string);          term_word(tp, dp->string);
   

Legend:
Removed from v.1.74  
changed lines
  Added in v.1.79

CVSweb