![]() ![]() | ![]() |
version 1.105, 2014/10/28 17:36:19 | version 1.111, 2015/01/31 00:12:41 | ||
---|---|---|---|
|
|
||
* 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. | ||
*/ | */ | ||
#ifndef TERM_H | |||
#define TERM_H | |||
__BEGIN_DECLS | |||
struct termp; | |||
enum termenc { | enum termenc { | ||
TERMENC_ASCII, | TERMENC_ASCII, | ||
TERMENC_LOCALE, | TERMENC_LOCALE, | ||
|
|
||
#define TERM_MAXMARGIN 100000 /* FIXME */ | #define TERM_MAXMARGIN 100000 /* FIXME */ | ||
struct termp; | |||
typedef void (*term_margin)(struct termp *, const void *); | typedef void (*term_margin)(struct termp *, const void *); | ||
struct termp_tbl { | struct termp_tbl { | ||
|
|
||
#define TERMP_HANG (1 << 11) /* See term_flushln(). */ | #define TERMP_HANG (1 << 11) /* See term_flushln(). */ | ||
#define TERMP_NOSPLIT (1 << 12) /* Do not break line before .An. */ | #define TERMP_NOSPLIT (1 << 12) /* Do not break line before .An. */ | ||
#define TERMP_SPLIT (1 << 13) /* Break line before .An. */ | #define TERMP_SPLIT (1 << 13) /* Break line before .An. */ | ||
#define TERMP_NONEWLINE (1 << 14) /* No line break in nofill mode. */ | |||
int *buf; /* Output buffer. */ | int *buf; /* Output buffer. */ | ||
enum termenc enc; /* Type of encoding. */ | enum termenc enc; /* Type of encoding. */ | ||
const struct mchars *symtab; /* Character table. */ | const struct mchars *symtab; /* Character table. */ | ||
enum termfont fontl; /* Last font set. */ | enum termfont fontl; /* Last font set. */ | ||
enum termfont fontq[10]; /* Symmetric fonts. */ | enum termfont *fontq; /* Symmetric fonts. */ | ||
int fontsz; /* Allocated size of font stack */ | |||
int fonti; /* Index of font stack. */ | int fonti; /* Index of font stack. */ | ||
term_margin headf; /* invoked to print head */ | term_margin headf; /* invoked to print head */ | ||
term_margin footf; /* invoked to print foot */ | term_margin footf; /* invoked to print foot */ | ||
|
|
||
struct termp_ps *ps; | struct termp_ps *ps; | ||
}; | }; | ||
__BEGIN_DECLS | |||
struct tbl_span; | |||
struct eqn; | |||
const char *ascii_uc2str(int); | const char *ascii_uc2str(int); | ||
void term_eqn(struct termp *, const struct eqn *); | void term_eqn(struct termp *, const struct eqn *); | ||
|
|
||
void term_end(struct termp *); | void term_end(struct termp *); | ||
void term_setwidth(struct termp *, const char *); | void term_setwidth(struct termp *, const char *); | ||
size_t term_hspan(const struct termp *, | int term_hspan(const struct termp *, const struct roffsu *); | ||
const struct roffsu *); | int term_vspan(const struct termp *, const struct roffsu *); | ||
size_t term_vspan(const struct termp *, | |||
const struct roffsu *); | |||
size_t term_strlen(const struct termp *, const char *); | size_t term_strlen(const struct termp *, const char *); | ||
size_t term_len(const struct termp *, size_t); | size_t term_len(const struct termp *, size_t); | ||
enum termfont term_fonttop(struct termp *); | |||
const void *term_fontq(struct termp *); | |||
void term_fontpush(struct termp *, enum termfont); | void term_fontpush(struct termp *, enum termfont); | ||
void term_fontpop(struct termp *); | void term_fontpop(struct termp *); | ||
void term_fontpopq(struct termp *, const void *); | void term_fontpopq(struct termp *, int); | ||
void term_fontrepl(struct termp *, enum termfont); | void term_fontrepl(struct termp *, enum termfont); | ||
void term_fontlast(struct termp *); | void term_fontlast(struct termp *); | ||
__END_DECLS | __END_DECLS | ||
#endif /*!TERM_H*/ |