summaryrefslogtreecommitdiffstats
path: root/libroff.h
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-12-28 13:46:07 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-12-28 13:46:07 +0000
commit715dac62c941f1757a389d2c3dca9aade6b742ea (patch)
treefb3256c0ddfeac539bc450ffaaceb79c72f69c1c /libroff.h
parentb7a413d6e95970beaca4b47cedb9aa482b3b9e2a (diff)
downloadmandoc-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.h36
1 files changed, 35 insertions, 1 deletions
diff --git a/libroff.h b/libroff.h
index b9a153d2..755a3e1d 100644
--- a/libroff.h
+++ b/libroff.h
@@ -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