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

Diff for /mandoc/out.h between version 1.15 and 1.35

version 1.15, 2011/01/05 15:37:23 version 1.35, 2022/09/11 09:13:48
Line 1 
Line 1 
 /*      $Id$ */  /* $Id$ */
 /*  /*
  * Copyright (c) 2009 Kristaps Dzonsons <kristaps@bsd.lv>   * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
    * Copyright (c) 2014, 2017, 2018 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 13 
Line 14 
  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN   * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF   * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.   * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
    *
    * Utilities for use by multiple mandoc(1) formatters.
  */   */
 #ifndef OUT_H  
 #define OUT_H  
   
 #define DATESIZ         24  enum    roffscale {
           SCALE_CM, /* centimeters (c) */
           SCALE_IN, /* inches (i) */
           SCALE_PC, /* pica (P) */
           SCALE_PT, /* points (p) */
           SCALE_EM, /* ems (m) */
           SCALE_MM, /* mini-ems (M) */
           SCALE_EN, /* ens (n) */
           SCALE_BU, /* default horizontal (u) */
           SCALE_VS, /* default vertical (v) */
           SCALE_FS, /* syn. for u (f) */
           SCALE_MAX
   };
   
 __BEGIN_DECLS  
   
 struct  roffcol {  struct  roffcol {
         size_t           width; /* width of cell */          size_t           width; /* width of cell */
           size_t           nwidth; /* max. width of number in cell */
         size_t           decimal; /* decimal position in cell */          size_t           decimal; /* decimal position in cell */
           size_t           spacing; /* spacing after the column */
           int              flags; /* layout flags, see tbl_cell */
 };  };
   
 typedef size_t (*tbl_strlen)(const char *, void *);  struct  roffsu {
 typedef size_t (*tbl_len)(size_t, void *);          enum roffscale    unit;
           double            scale;
   };
   
   typedef size_t  (*tbl_sulen)(const struct roffsu *, void *);
   typedef size_t  (*tbl_strlen)(const char *, void *);
   typedef size_t  (*tbl_len)(size_t, void *);
   
 struct  rofftbl {  struct  rofftbl {
           tbl_sulen        sulen; /* calculate scaling unit length */
         tbl_strlen       slen; /* calculate string length */          tbl_strlen       slen; /* calculate string length */
         tbl_len          len; /* produce width of empty space */          tbl_len          len; /* produce width of empty space */
         struct roffcol  *cols; /* master column specifiers */          struct roffcol  *cols; /* master column specifiers */
         void            *arg; /* passed to slen and len */          void            *arg; /* passed to sulen, slen, and len */
 };  };
   
 enum    roffscale {  
         SCALE_CM,  
         SCALE_IN,  
         SCALE_PC,  
         SCALE_PT,  
         SCALE_EM,  
         SCALE_MM,  
         SCALE_EN,  
         SCALE_BU,  
         SCALE_VS,  
         SCALE_FS,  
         SCALE_MAX  
 };  
   
 enum    roffdeco {  struct  tbl_span;
         DECO_NONE,  
         DECO_SPECIAL, /* special character */  
         DECO_SSPECIAL, /* single-char special */  
         DECO_RESERVED, /* reserved word */  
         DECO_BOLD, /* bold font */  
         DECO_ITALIC, /* italic font */  
         DECO_ROMAN, /* "normal" undecorated font */  
         DECO_PREVIOUS, /* revert to previous font */  
         DECO_NOSPACE, /* suppress spacing */  
         DECO_FONT, /* font */  
         DECO_FFONT, /* font family */  
         DECO_MAX  
 };  
   
 struct  roffsu {  const char       *a2roffsu(const char *, struct roffsu *, enum roffscale);
         enum roffscale    unit;  void              tblcalc(struct rofftbl *,
         double            scale;                          const struct tbl_span *, size_t, size_t);
 };  
   
 #define SCALE_VS_INIT(p, v) \  
         do { (p)->unit = SCALE_VS; \  
              (p)->scale = (v); } \  
         while (/* CONSTCOND */ 0)  
   
 #define SCALE_HS_INIT(p, v) \  
         do { (p)->unit = SCALE_BU; \  
              (p)->scale = (v); } \  
         while (/* CONSTCOND */ 0)  
   
 int       a2roffsu(const char *, struct roffsu *, enum roffscale);  
 int       a2roffdeco(enum roffdeco *, const char **, size_t *);  
 void      time2a(time_t, char *, size_t);  
 void      tblcalc(struct rofftbl *tbl, const struct tbl_span *);  
   
 __END_DECLS  
   
 #endif /*!OUT_H*/  

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.35

CVSweb