X-Git-Url: https://git.cameronkatri.com/mandoc.git/blobdiff_plain/882b76ed67f76f2c0568ddf2aa980875a139fbe5..d2b8bc33bc90db15fc9ea4e53cfc51baa3167a47:/term.h diff --git a/term.h b/term.h index ecc6317d..4a1ed902 100644 --- a/term.h +++ b/term.h @@ -1,4 +1,4 @@ -/* $Id: term.h,v 1.40 2009/07/21 13:34:13 kristaps Exp $ */ +/* $Id: term.h,v 1.52 2010/03/23 12:42:22 kristaps Exp $ */ /* * Copyright (c) 2008, 2009 Kristaps Dzonsons * @@ -17,17 +17,16 @@ #ifndef TERM_H #define TERM_H -/* FIXME - clean up tabs. */ - -#define INDENT 5 -#define HALFINDENT 3 - __BEGIN_DECLS enum termenc { - TERMENC_ASCII, - TERMENC_LATIN1, /* Not implemented. */ - TERMENC_UTF8 /* Not implemented. */ + TERMENC_ASCII +}; + +enum termfont { + TERMFONT_NONE = 0, + TERMFONT_BOLD, + TERMFONT_UNDER }; struct termp { @@ -36,10 +35,8 @@ struct termp { size_t maxcols; /* Max size of buf. */ size_t offset; /* Margin offest. */ size_t col; /* Bytes in buf. */ + int overstep; /* See termp_flushln(). */ int flags; -#define TERMP_STYLE 0x3 /* Style mask. */ -#define TERMP_BOLD (1 << 0) /* Styles... */ -#define TERMP_UNDER (1 << 1) #define TERMP_NOSPACE (1 << 2) /* No space before words. */ #define TERMP_NOLPAD (1 << 3) /* See term_flushln(). */ #define TERMP_NOBREAK (1 << 4) /* See term_flushln(). */ @@ -47,21 +44,34 @@ struct termp { #define TERMP_NONOSPACE (1 << 7) /* No space (no autounset). */ #define TERMP_DANGLE (1 << 8) /* See term_flushln(). */ #define TERMP_HANG (1 << 9) /* See term_flushln(). */ -#define TERMP_TWOSPACE (1 << 9) /* See term_flushln(). */ +#define TERMP_TWOSPACE (1 << 10) /* See term_flushln(). */ +#define TERMP_NOSPLIT (1 << 11) /* See termp_an_pre/post(). */ +#define TERMP_SPLIT (1 << 12) /* See termp_an_pre/post(). */ +#define TERMP_ANPREC (1 << 13) /* See termp_an_pre(). */ char *buf; /* Output buffer. */ enum termenc enc; /* Type of encoding. */ void *symtab; /* Encoded-symbol table. */ + enum termfont fontl; /* Last font set. */ + enum termfont fontq[10]; /* Symmetric fonts. */ + int fonti; /* Index of font stack. */ }; -void *term_ascii2htab(void); -const char *term_a2ascii(void *, const char *, size_t, size_t *); -void term_asciifree(void *); - void term_newln(struct termp *); void term_vspace(struct termp *); void term_word(struct termp *, const char *); void term_flushln(struct termp *); +size_t term_hspan(const struct roffsu *); +size_t term_vspan(const struct roffsu *); + +enum termfont term_fonttop(struct termp *); +const void *term_fontq(struct termp *); +void term_fontpush(struct termp *, enum termfont); +void term_fontpop(struct termp *); +void term_fontpopq(struct termp *, const void *); +void term_fontrepl(struct termp *, enum termfont); +void term_fontlast(struct termp *); + __END_DECLS #endif /*!TERM_H*/