Return to term.h CVS log | Up to [cvsweb.bsd.lv] / mandoc |
version 1.124, 2017/06/07 02:14:09 | version 1.133, 2022/08/15 13:04:43 | ||
---|---|---|---|
|
|
||
/* $Id$ */ | /* $Id$ */ | ||
/* | /* | ||
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> | * Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> | ||
* Copyright (c) 2011-2015, 2017 Ingo Schwarze <schwarze@openbsd.org> | * Copyright (c) 2011-2015, 2017, 2019 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 | ||
|
|
||
TERMFONT__MAX | TERMFONT__MAX | ||
}; | }; | ||
struct eqn; | struct eqn_box; | ||
struct roff_meta; | struct roff_meta; | ||
struct roff_node; | struct roff_node; | ||
struct tbl_span; | struct tbl_span; | ||
|
|
||
int decimal; /* decimal point position */ | int decimal; /* decimal point position */ | ||
}; | }; | ||
struct termp_col { | |||
int *buf; /* Output buffer. */ | |||
size_t maxcols; /* Allocated bytes in buf. */ | |||
size_t lastcol; /* Last byte in buf. */ | |||
size_t col; /* Byte in buf to be written. */ | |||
size_t rmargin; /* Current right margin. */ | |||
size_t offset; /* Current left margin. */ | |||
size_t taboff; /* Offset for literal tabs. */ | |||
}; | |||
struct termp { | struct termp { | ||
enum termtype type; | struct rofftbl tbl; /* Table configuration. */ | ||
struct rofftbl tbl; /* table configuration */ | struct termp_col *tcols; /* Array of table columns. */ | ||
int synopsisonly; /* print the synopsis only */ | struct termp_col *tcol; /* Current table column. */ | ||
int mdocstyle; /* imitate mdoc(7) output */ | size_t maxtcol; /* Allocated table columns. */ | ||
size_t lasttcol; /* Last column currently used. */ | |||
size_t line; /* Current output line number. */ | size_t line; /* Current output line number. */ | ||
size_t defindent; /* Default indent for text. */ | size_t defindent; /* Default indent for text. */ | ||
size_t defrmargin; /* Right margin of the device. */ | size_t defrmargin; /* Right margin of the device. */ | ||
size_t lastrmargin; /* Right margin before the last ll. */ | size_t lastrmargin; /* Right margin before the last ll. */ | ||
size_t rmargin; /* Current right margin. */ | |||
size_t maxrmargin; /* Max right margin. */ | size_t maxrmargin; /* Max right margin. */ | ||
size_t maxcols; /* Max size of buf. */ | |||
size_t offset; /* Margin offest. */ | |||
size_t col; /* Byte position in buf. */ | size_t col; /* Byte position in buf. */ | ||
size_t lastcol; /* Bytes in buf. */ | |||
size_t viscol; /* Chars on current line. */ | size_t viscol; /* Chars on current line. */ | ||
size_t trailspace; /* See termp_flushln(). */ | size_t trailspace; /* See term_flushln(). */ | ||
size_t minbl; /* Minimum blanks before next field. */ | size_t minbl; /* Minimum blanks before next field. */ | ||
int synopsisonly; /* Print the synopsis only. */ | |||
int mdocstyle; /* Imitate mdoc(7) output. */ | |||
int ti; /* Temporary indent for one line. */ | int ti; /* Temporary indent for one line. */ | ||
int skipvsp; /* Vertical space to skip. */ | int skipvsp; /* Vertical space to skip. */ | ||
int flags; | int flags; | ||
|
|
||
#define TERMP_NOBUF (1 << 17) /* Bypass output buffer. */ | #define TERMP_NOBUF (1 << 17) /* Bypass output buffer. */ | ||
#define TERMP_NEWMC (1 << 18) /* No .mc printed yet. */ | #define TERMP_NEWMC (1 << 18) /* No .mc printed yet. */ | ||
#define TERMP_ENDMC (1 << 19) /* Next break ends .mc mode. */ | #define TERMP_ENDMC (1 << 19) /* Next break ends .mc mode. */ | ||
int *buf; /* Output buffer. */ | #define TERMP_MULTICOL (1 << 20) /* Multiple column mode. */ | ||
#define TERMP_CENTER (1 << 21) /* Center output lines. */ | |||
#define TERMP_RIGHT (1 << 22) /* Adjust to the right margin. */ | |||
enum termtype type; /* Terminal, PS, or PDF. */ | |||
enum termenc enc; /* Type of encoding. */ | enum termenc enc; /* Type of encoding. */ | ||
enum termfont fontl; /* Last font set. */ | enum termfont fontl; /* Last font set. */ | ||
enum termfont *fontq; /* Symmetric fonts. */ | enum termfont *fontq; /* Symmetric fonts. */ | ||
|
|
||
void roff_term_pre(struct termp *, const struct roff_node *); | void roff_term_pre(struct termp *, const struct roff_node *); | ||
void term_eqn(struct termp *, const struct eqn *); | void term_eqn(struct termp *, const struct eqn_box *); | ||
void term_tbl(struct termp *, const struct tbl_span *); | void term_tbl(struct termp *, const struct tbl_span *); | ||
void term_free(struct termp *); | void term_free(struct termp *); | ||
void term_setcol(struct termp *, size_t); | |||
void term_newln(struct termp *); | void term_newln(struct termp *); | ||
void term_vspace(struct termp *); | void term_vspace(struct termp *); | ||
void term_word(struct termp *, const char *); | void term_word(struct termp *, const char *); | ||
|
|
||
void term_setwidth(struct termp *, const char *); | void term_setwidth(struct termp *, const char *); | ||
int term_hspan(const struct termp *, const struct roffsu *); | int term_hspan(const struct termp *, const struct roffsu *); | ||
int term_hen(const struct termp *, const struct roffsu *); | |||
int term_vspan(const struct termp *, const struct roffsu *); | int 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); | ||
void term_tab_set(const struct termp *, const char *); | void term_tab_set(const struct termp *, const char *); | ||
void term_tab_iset(size_t); | |||
size_t term_tab_next(size_t); | size_t term_tab_next(size_t); | ||
void term_tab_free(void); | |||
void term_fontpush(struct termp *, enum termfont); | void term_fontpush(struct termp *, enum termfont); | ||
void term_fontpop(struct termp *); | void term_fontpop(struct termp *); |