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

Diff for /mandoc/tbl_html.c between version 1.29 and 1.39

version 1.29, 2018/11/26 21:06:02 version 1.39, 2022/01/12 04:43:26
Line 1 
Line 1 
 /*      $Id$ */  /* $Id$ */
 /*  /*
  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2014, 2015, 2017, 2018 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2014,2015,2017,2018,2021 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 <string.h>  #include <string.h>
   
 #include "mandoc.h"  #include "mandoc.h"
   #include "roff.h"
   #include "tbl.h"
 #include "out.h"  #include "out.h"
 #include "html.h"  #include "html.h"
   
Line 79  html_tbl_sulen(const struct roffsu *su, void *arg)
Line 81  html_tbl_sulen(const struct roffsu *su, void *arg)
 static void  static void
 html_tblopen(struct html *h, const struct tbl_span *sp)  html_tblopen(struct html *h, const struct tbl_span *sp)
 {  {
           html_close_paragraph(h);
         if (h->tbl.cols == NULL) {          if (h->tbl.cols == NULL) {
                 h->tbl.len = html_tbl_len;                  h->tbl.len = html_tbl_len;
                 h->tbl.slen = html_tbl_strlen;                  h->tbl.slen = html_tbl_strlen;
Line 112  print_tbl(struct html *h, const struct tbl_span *sp)
Line 115  print_tbl(struct html *h, const struct tbl_span *sp)
         const struct tbl_dat    *dp;          const struct tbl_dat    *dp;
         const struct tbl_cell   *cp;          const struct tbl_cell   *cp;
         const struct tbl_span   *psp;          const struct tbl_span   *psp;
           const struct roffcol    *col;
         struct tag              *tt;          struct tag              *tt;
         const char              *hspans, *vspans, *halign, *valign;          const char              *hspans, *vspans, *halign, *valign;
         const char              *bborder, *lborder, *rborder;          const char              *bborder, *lborder, *rborder;
           const char              *ccp;
         char                     hbuf[4], vbuf[4];          char                     hbuf[4], vbuf[4];
           size_t                   sz;
           enum mandoc_esc          save_font;
         int                      i;          int                      i;
   
         if (h->tblt == NULL)          if (h->tblt == NULL)
Line 237  print_tbl(struct html *h, const struct tbl_span *sp)
Line 244  print_tbl(struct html *h, const struct tbl_span *sp)
                     "vertical-align", valign,                      "vertical-align", valign,
                     "text-align", halign,                      "text-align", halign,
                     "border-right-style", rborder);                      "border-right-style", rborder);
                 if (dp->string != NULL)                  if (dp->layout->pos == TBL_CELL_HORIZ ||
                       dp->layout->pos == TBL_CELL_DHORIZ ||
                       dp->pos == TBL_DATA_HORIZ ||
                       dp->pos == TBL_DATA_NHORIZ ||
                       dp->pos == TBL_DATA_DHORIZ ||
                       dp->pos == TBL_DATA_NDHORIZ)
                           print_otag(h, TAG_HR, "");
                   else if (dp->string != NULL) {
                           save_font = h->metac;
                           html_setfont(h, dp->layout->font);
                           if (dp->layout->pos == TBL_CELL_LONG)
                                   print_text(h, "\\[u2003]");  /* em space */
                         print_text(h, dp->string);                          print_text(h, dp->string);
                           if (dp->layout->pos == TBL_CELL_NUMBER) {
                                   col = h->tbl.cols + dp->layout->col;
                                   if (col->decimal < col->nwidth) {
                                           if ((ccp = strrchr(dp->string,
                                               sp->opts->decimal)) == NULL) {
                                                   /* Punctuation space. */
                                                   print_text(h, "\\[u2008]");
                                                   ccp = strchr(dp->string, '\0');
                                           } else
                                                   ccp++;
                                           sz = col->nwidth - col->decimal;
                                           while (--sz > 0) {
                                                   if (*ccp == '\0')
                                                           /* Figure space. */
                                                           print_text(h,
                                                               "\\[u2007]");
                                                   else
                                                           ccp++;
                                           }
                                   }
                           }
                           html_setfont(h, save_font);
                   }
         }          }
   
         print_tagq(h, tt);          print_tagq(h, tt);

Legend:
Removed from v.1.29  
changed lines
  Added in v.1.39

CVSweb