version 1.26, 2014/12/01 08:05:52 |
version 1.29, 2017/06/08 18:11:22 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
|
* Copyright (c) 2014, 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 |
|
|
double scale; |
double scale; |
}; |
}; |
|
|
|
typedef size_t (*tbl_sulen)(const struct roffsu *, void *); |
typedef size_t (*tbl_strlen)(const char *, void *); |
typedef size_t (*tbl_strlen)(const char *, void *); |
typedef size_t (*tbl_len)(size_t, 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 */ |
}; |
}; |
|
|
#define SCALE_VS_INIT(p, v) \ |
#define SCALE_VS_INIT(p, v) \ |
|
|
(p)->scale = (v); } \ |
(p)->scale = (v); } \ |
while (/* CONSTCOND */ 0) |
while (/* CONSTCOND */ 0) |
|
|
__BEGIN_DECLS |
|
|
|
struct tbl_span; |
struct tbl_span; |
|
|
int a2roffsu(const char *, struct roffsu *, enum roffscale); |
const char *a2roffsu(const char *, struct roffsu *, enum roffscale); |
void tblcalc(struct rofftbl *tbl, |
void tblcalc(struct rofftbl *tbl, |
const struct tbl_span *, size_t); |
const struct tbl_span *, size_t); |
|
|
__END_DECLS |
|