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

Diff for /mandoc/out.c between version 1.62 and 1.64

version 1.62, 2015/10/12 00:08:16 version 1.64, 2017/06/08 12:54:58
Line 1 
Line 1 
 /*      $Id$ */  /*      $Id$ */
 /*  /*
  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  * Copyright (c) 2011, 2014, 2015 Ingo Schwarze <schwarze@openbsd.org>   * Copyright (c) 2011, 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 40  static void tblcalc_number(struct rofftbl *, struct ro
Line 40  static void tblcalc_number(struct rofftbl *, struct ro
  * Parse the *src string and store a scaling unit into *dst.   * Parse the *src string and store a scaling unit into *dst.
  * If the string doesn't specify the unit, use the default.   * If the string doesn't specify the unit, use the default.
  * If no default is specified, fail.   * If no default is specified, fail.
  * Return 2 on complete success, 1 when a conversion was done,   * Return a pointer to the byte after the last byte used,
  * but there was trailing garbage, and 0 on total failure.   * or NULL on total failure.
  */   */
 int  const char *
 a2roffsu(const char *src, struct roffsu *dst, enum roffscale def)  a2roffsu(const char *src, struct roffsu *dst, enum roffscale def)
 {  {
         char            *endptr;          char            *endptr;
Line 51  a2roffsu(const char *src, struct roffsu *dst, enum rof
Line 51  a2roffsu(const char *src, struct roffsu *dst, enum rof
         dst->unit = def == SCALE_MAX ? SCALE_BU : def;          dst->unit = def == SCALE_MAX ? SCALE_BU : def;
         dst->scale = strtod(src, &endptr);          dst->scale = strtod(src, &endptr);
         if (endptr == src)          if (endptr == src)
                 return 0;                  return NULL;
   
         switch (*endptr++) {          switch (*endptr++) {
         case 'c':          case 'c':
Line 89  a2roffsu(const char *src, struct roffsu *dst, enum rof
Line 89  a2roffsu(const char *src, struct roffsu *dst, enum rof
                 /* FALLTHROUGH */                  /* FALLTHROUGH */
         default:          default:
                 if (SCALE_MAX == def)                  if (SCALE_MAX == def)
                         return 0;                          return NULL;
                 dst->unit = def;                  dst->unit = def;
                 break;                  break;
         }          }
           return endptr;
         return *endptr == '\0' ? 2 : 1;  
 }  }
   
 /*  /*
Line 197  tblcalc(struct rofftbl *tbl, const struct tbl_span *sp
Line 196  tblcalc(struct rofftbl *tbl, const struct tbl_span *sp
          */           */
   
         if (nxcol && totalwidth) {          if (nxcol && totalwidth) {
                 xwidth = totalwidth - xwidth - 3*maxcol -                  xwidth += 3*maxcol +
                     (opts->opts & (TBL_OPT_BOX | TBL_OPT_DBOX) ?                      (opts->opts & (TBL_OPT_BOX | TBL_OPT_DBOX) ?
                      2 : !!opts->lvert + !!opts->rvert);                       2 : !!opts->lvert + !!opts->rvert);
                   if (xwidth >= totalwidth)
                           return;
                   xwidth = totalwidth - xwidth;
   
                 /*                  /*
                  * Emulate a bug in GNU tbl width calculation that                   * Emulate a bug in GNU tbl width calculation that

Legend:
Removed from v.1.62  
changed lines
  Added in v.1.64

CVSweb