version 1.54, 2010/05/12 16:01:01 |
version 1.59, 2010/06/08 13:22:37 |
|
|
|
|
__BEGIN_DECLS |
__BEGIN_DECLS |
|
|
|
struct termp; |
|
|
enum termenc { |
enum termenc { |
TERMENC_ASCII |
TERMENC_ASCII |
}; |
}; |
|
|
|
enum termtype { |
|
TERMTYPE_CHAR, |
|
TERMTYPE_PS |
|
}; |
|
|
enum termfont { |
enum termfont { |
TERMFONT_NONE = 0, |
TERMFONT_NONE = 0, |
TERMFONT_BOLD, |
TERMFONT_BOLD, |
|
|
|
|
#define TERM_MAXMARGIN 100000 /* FIXME */ |
#define TERM_MAXMARGIN 100000 /* FIXME */ |
|
|
|
typedef void (*term_margin)(struct termp *, const void *); |
|
|
struct termp { |
struct termp { |
|
enum termtype type; |
|
size_t defrmargin; /* Right margin of the device.. */ |
size_t rmargin; /* Current right margin. */ |
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 maxcols; /* Max size of buf. */ |
size_t offset; /* Margin offest. */ |
size_t offset; /* Margin offest. */ |
|
size_t tabwidth; /* Distance of tab positions. */ |
size_t col; /* Bytes in buf. */ |
size_t col; /* Bytes in buf. */ |
|
size_t viscol; /* Chars on current line. */ |
int overstep; /* See termp_flushln(). */ |
int overstep; /* See termp_flushln(). */ |
int flags; |
int flags; |
#define TERMP_SENTENCE (1 << 1) /* Space before a sentence. */ |
#define TERMP_SENTENCE (1 << 1) /* Space before a sentence. */ |
|
|
enum termfont fontl; /* Last font set. */ |
enum termfont fontl; /* Last font set. */ |
enum termfont fontq[10]; /* Symmetric fonts. */ |
enum termfont fontq[10]; /* Symmetric fonts. */ |
int fonti; /* Index of font stack. */ |
int fonti; /* Index of font stack. */ |
|
term_margin headf; /* invoked to print head */ |
|
term_margin footf; /* invoked to print foot */ |
|
const void *argf; /* arg for headf/footf */ |
|
int psstate; /* -Tps: state of ps output */ |
|
#define PS_INLINE (1 << 0) |
|
#define PS_MARGINS (1 << 1) |
|
size_t pscol; /* -Tps: visible column */ |
|
size_t psrow; /* -Tps: visible row */ |
|
size_t pspage; /* -Tps: current page */ |
}; |
}; |
|
|
|
struct termp *term_alloc(enum termenc); |
|
void term_free(struct termp *); |
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_flushln(struct termp *); |
void term_flushln(struct termp *); |
|
void term_begin(struct termp *, term_margin, |
|
term_margin, const void *); |
|
void term_end(struct termp *); |
|
|
size_t term_hspan(const struct roffsu *); |
size_t term_hspan(const struct roffsu *); |
size_t term_vspan(const struct roffsu *); |
size_t term_vspan(const struct roffsu *); |