Disconnect hostapd from building in base
[dragonfly.git] / contrib / mdocml / libroff.h
1 /*      $Id: libroff.h,v 1.29 2014/04/20 16:46:04 schwarze Exp $ */
2 /*
3  * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv>
4  *
5  * Permission to use, copy, modify, and distribute this software for any
6  * purpose with or without fee is hereby granted, provided that the above
7  * copyright notice and this permission notice appear in all copies.
8  *
9  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16  */
17 #ifndef LIBROFF_H
18 #define LIBROFF_H
19
20 __BEGIN_DECLS
21
22 enum    tbl_part {
23         TBL_PART_OPTS, /* in options (first line) */
24         TBL_PART_LAYOUT, /* describing layout */
25         TBL_PART_DATA, /* creating data rows */
26         TBL_PART_CDATA /* continue previous row */
27 };
28
29 struct  tbl_node {
30         struct mparse    *parse; /* parse point */
31         int               pos; /* invocation column */
32         int               line; /* invocation line */
33         enum tbl_part     part;
34         struct tbl_opts   opts;
35         struct tbl_row   *first_row;
36         struct tbl_row   *last_row;
37         struct tbl_span  *first_span;
38         struct tbl_span  *current_span;
39         struct tbl_span  *last_span;
40         struct tbl_head  *first_head;
41         struct tbl_head  *last_head;
42         struct tbl_node  *next;
43 };
44
45 struct  eqn_node {
46         struct eqn_def   *defs;
47         size_t            defsz;
48         char             *data;
49         size_t            rew;
50         size_t            cur;
51         size_t            sz;
52         int               gsize;
53         struct eqn        eqn;
54         struct mparse    *parse;
55         struct eqn_node  *next;
56 };
57
58 struct  eqn_def {
59         char             *key;
60         size_t            keysz;
61         char             *val;
62         size_t            valsz;
63 };
64
65 struct tbl_node *tbl_alloc(int, int, struct mparse *);
66 void             tbl_restart(int, int, struct tbl_node *);
67 void             tbl_free(struct tbl_node *);
68 void             tbl_reset(struct tbl_node *);
69 enum rofferr     tbl_read(struct tbl_node *, int, const char *, int);
70 int              tbl_option(struct tbl_node *, int, const char *);
71 int              tbl_layout(struct tbl_node *, int, const char *);
72 int              tbl_data(struct tbl_node *, int, const char *);
73 int              tbl_cdata(struct tbl_node *, int, const char *);
74 const struct tbl_span   *tbl_span(struct tbl_node *);
75 void             tbl_end(struct tbl_node **);
76 struct eqn_node *eqn_alloc(const char *, int, int, struct mparse *);
77 enum rofferr     eqn_end(struct eqn_node **);
78 void             eqn_free(struct eqn_node *);
79 enum rofferr     eqn_read(struct eqn_node **, int,
80                         const char *, int, int *);
81
82 __END_DECLS
83
84 #endif /*LIBROFF_H*/