aboutsummaryrefslogtreecommitdiffstatshomepage
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
commit446eaf99d9987df7d312d3315e99646e91ada7fe (patch)
tree694e7d3685c90c2a36012ac85aa7f5b075d4c462 /libroff.h
parentd3bbb7e6cdf2c0b8af5ac3158acec7c2d7ee03bd (diff)
downloadmandoc-446eaf99d9987df7d312d3315e99646e91ada7fe.tar.gz
mandoc-446eaf99d9987df7d312d3315e99646e91ada7fe.tar.zst
mandoc-446eaf99d9987df7d312d3315e99646e91ada7fe.zip
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.h38
1 files changed, 36 insertions, 2 deletions
diff --git a/libroff.h b/libroff.h
index 77722179..f3c7fed1 100644
--- a/libroff.h
+++ b/libroff.h
@@ -1,4 +1,4 @@
-/* $Id: libroff.h,v 1.1 2010/12/28 10:51:03 kristaps Exp $ */
+/* $Id: libroff.h,v 1.2 2010/12/28 13:46:07 kristaps Exp $ */
/*
* Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
*
@@ -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