]>
git.cameronkatri.com Git - mandoc.git/blob - out.h
1 /* $Id: out.h,v 1.18 2011/03/22 10:13:01 kristaps Exp $ */
3 * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 SCALE_CM
, /* centimeters (c) */
22 SCALE_IN
, /* inches (i) */
23 SCALE_PC
, /* pica (P) */
24 SCALE_PT
, /* points (p) */
25 SCALE_EM
, /* ems (m) */
26 SCALE_MM
, /* mini-ems (M) */
27 SCALE_EN
, /* ens (n) */
28 SCALE_BU
, /* default horizontal (u) */
29 SCALE_VS
, /* default vertical (v) */
30 SCALE_FS
, /* syn. for u (f) */
36 DECO_NUMBERED
, /* numbered character */
37 DECO_SPECIAL
, /* special character */
38 DECO_SSPECIAL
, /* single-char special */
39 DECO_RESERVED
, /* reserved word */
40 DECO_BOLD
, /* bold font */
41 DECO_ITALIC
, /* italic font */
42 DECO_ROMAN
, /* "normal" undecorated font */
43 DECO_PREVIOUS
, /* revert to previous font */
44 DECO_NOSPACE
, /* suppress spacing */
46 DECO_FFONT
, /* font family */
51 CHARS_ASCII
, /* 7-bit ascii representation */
52 CHARS_HTML
/* unicode values */
56 size_t width
; /* width of cell */
57 size_t decimal
; /* decimal position in cell */
65 typedef size_t (*tbl_strlen
)(const char *, void *);
66 typedef size_t (*tbl_len
)(size_t, void *);
69 tbl_strlen slen
; /* calculate string length */
70 tbl_len len
; /* produce width of empty space */
71 struct roffcol
*cols
; /* master column specifiers */
72 void *arg
; /* passed to slen and len */
77 #define SCALE_VS_INIT(p, v) \
78 do { (p)->unit = SCALE_VS; \
80 while (/* CONSTCOND */ 0)
82 #define SCALE_HS_INIT(p, v) \
83 do { (p)->unit = SCALE_BU; \
85 while (/* CONSTCOND */ 0)
87 int a2roffsu(const char *, struct roffsu
*, enum roffscale
);
88 int a2roffdeco(enum roffdeco
*, const char **, size_t *);
89 void time2a(time_t, char *, size_t);
90 void tblcalc(struct rofftbl
*tbl
, const struct tbl_span
*);
92 void *chars_init(enum chars
);
93 const char *chars_num2char(const char *, size_t);
94 const char *chars_spec2str(void *, const char *, size_t, size_t *);
95 int chars_spec2cp(void *, const char *, size_t);
96 const char *chars_res2str(void *, const char *, size_t, size_t *);
97 int chars_res2cp(void *, const char *, size_t);
98 void chars_free(void *);