diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-12-28 13:46:07 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2010-12-28 13:46:07 +0000 |
commit | 715dac62c941f1757a389d2c3dca9aade6b742ea (patch) | |
tree | fb3256c0ddfeac539bc450ffaaceb79c72f69c1c /libroff.h | |
parent | b7a413d6e95970beaca4b47cedb9aa482b3b9e2a (diff) | |
download | mandoc-715dac62c941f1757a389d2c3dca9aade6b742ea.tar.gz |
Adding initial options processing (not hooked into parse yet). This is
more or less copied from tbl.bsd.lv and still needs integration with the
general mandoc framework, e.g., with error messages.
Diffstat (limited to 'libroff.h')
-rw-r--r-- | libroff.h | 36 |
1 files changed, 35 insertions, 1 deletions
@@ -19,12 +19,46 @@ __BEGIN_DECLS -struct tbl; +enum tbl_tok { + TBL_TOK_OPENPAREN = 0, + TBL_TOK_CLOSEPAREN, + TBL_TOK_COMMA, + TBL_TOK_SEMICOLON, + TBL_TOK_PERIOD, + TBL_TOK_SPACE, + TBL_TOK_TAB, + TBL_TOK_NIL, + TBL_TOK__MAX +}; + +enum tbl_part { + TBL_PART_OPTS, /* in options (first line) */ + TBL_PART_LAYOUT, /* describing layout */ + TBL_PART_DATA /* creating data rows */ +}; + +struct tbl { + enum tbl_part part; + char buf[BUFSIZ]; + char tab; /* cell-separator */ + char decimal; /* decimal point */ + int linesize; + char delims[2]; + int opts; +#define TBL_OPT_CENTRE (1 << 0) +#define TBL_OPT_EXPAND (1 << 1) +#define TBL_OPT_BOX (1 << 2) +#define TBL_OPT_DBOX (1 << 3) +#define TBL_OPT_ALLBOX (1 << 4) +#define TBL_OPT_NOKEEP (1 << 5) +#define TBL_OPT_NOSPACE (1 << 6) +}; struct tbl *tbl_alloc(void); void tbl_free(struct tbl *); void tbl_reset(struct tbl *); enum rofferr tbl_read(struct tbl *, int, const char *, int); +enum tbl_tok tbl_next(struct tbl *, const char *, int *); __END_DECLS |