Annotation of mandoc/private.h, Revision 1.6
1.6 ! kristaps 1: /* $Id: private.h,v 1.5 2008/11/24 18:32:39 kristaps Exp $ */
1.1 kristaps 2: /*
3: * Copyright (c) 2008 Kristaps Dzonsons <kristaps@kth.se>
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
7: * above copyright notice and this permission notice appear in all
8: * copies.
9: *
10: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11: * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12: * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13: * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14: * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15: * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16: * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17: * PERFORMANCE OF THIS SOFTWARE.
18: */
19: #ifndef PRIVATE_H
20: #define PRIVATE_H
21:
22: struct md_rbuf {
23: int fd;
24: char *name;
25: char *buf;
26: size_t bufsz;
27: size_t line;
28: };
29:
30: struct md_mbuf {
31: int fd;
32: char *name;
33: char *buf;
34: size_t bufsz;
35: size_t pos;
36: };
37:
1.5 kristaps 38: #define ROFF___ 0
39: #define ROFF_Dd 1
40: #define ROFF_Dt 2
41: #define ROFF_Os 3
42: #define ROFF_Sh 4
1.6 ! kristaps 43: #define ROFF_Ss 5
! 44: #define ROFF_Pp 6
! 45: #define ROFF_D1 7
! 46: #define ROFF_Dl 8
! 47: #define ROFF_Bd 9
! 48: #define ROFF_Ed 10
! 49: #define ROFF_Bl 11
! 50: #define ROFF_El 12
! 51: #define ROFF_It 13
! 52: #define ROFF_An 14
! 53: #define ROFF_Li 15
! 54: #define ROFF_MAX 16
! 55:
! 56: #define ROFF_NAMES \
! 57: { \
! 58: "\\\"", \
! 59: "Dd", \
! 60: "Dt", \
! 61: "Os", \
! 62: "Sh", \
! 63: "Ss", \
! 64: "Pp", \
! 65: "D1", \
! 66: "Dl", \
! 67: "Bd", \
! 68: "Ed", \
! 69: "Bl", \
! 70: "El", \
! 71: "It", \
! 72: "An", \
! 73: "Li", \
! 74: }
1.5 kristaps 75:
76: #define ROFF_Split 0
77: #define ROFF_Nosplit 1
1.6 ! kristaps 78: #define ROFF_Ragged 2
! 79: #define ROFF_Unfilled 3
! 80: #define ROFF_Literal 4
! 81: #define ROFF_File 5
! 82: #define ROFF_Offset 6
! 83: #define ROFF_Bullet 7
! 84: #define ROFF_Dash 8
! 85: #define ROFF_Hyphen 9
! 86: #define ROFF_Item 10
! 87: #define ROFF_Enum 11
! 88: #define ROFF_Tag 12
! 89: #define ROFF_Diag 13
! 90: #define ROFF_Hang 14
! 91: #define ROFF_Ohang 15
! 92: #define ROFF_Inset 16
! 93: #define ROFF_Column 17
! 94: #define ROFF_ARGMAX 18
! 95:
! 96: #define ROFF_ARGNAMES \
! 97: { \
! 98: "split", \
! 99: "nosplit", \
! 100: "ragged", \
! 101: "unfilled", \
! 102: "literal", \
! 103: "file", \
! 104: "offset", \
! 105: "bullet", \
! 106: "dash", \
! 107: "hyphen", \
! 108: "item", \
! 109: "enum", \
! 110: "tag", \
! 111: "diag", \
! 112: "hang", \
! 113: "ohang", \
! 114: "inset", \
! 115: "column", \
! 116: }
1.5 kristaps 117:
118: /* FIXME: have a md_roff with all necessary parameters. */
119:
120: typedef int (*roffin)(int, int *, char **);
121: typedef int (*roffout)(int);
122: typedef int (*roffblkin)(int);
123: typedef int (*roffblkout)(int);
124:
1.1 kristaps 125: __BEGIN_DECLS
126:
1.4 kristaps 127: typedef void (*(*md_init)(const struct md_args *,
128: struct md_mbuf *, const struct md_rbuf *));
129: typedef int (*md_line)(void *, char *, size_t);
130: typedef int (*md_exit)(void *, int);
131:
132: void *md_init_html4_strict(const struct md_args *,
133: struct md_mbuf *, const struct md_rbuf *);
134: int md_line_html4_strict(void *, char *, size_t);
135: int md_exit_html4_strict(void *, int);
136:
137: void *md_init_dummy(const struct md_args *,
138: struct md_mbuf *, const struct md_rbuf *);
139: int md_line_dummy(void *, char *, size_t);
140: int md_exit_dummy(void *, int);
1.1 kristaps 141:
142: int md_buf_puts(struct md_mbuf *, const char *, size_t);
143: int md_buf_putchar(struct md_mbuf *, char);
144: int md_buf_putstring(struct md_mbuf *, const char *);
145:
1.4 kristaps 146: struct rofftree;
147:
148: struct rofftree *roff_alloc(const struct md_args *,
1.5 kristaps 149: struct md_mbuf *, const struct md_rbuf *,
1.6 ! kristaps 150: roffin, roffout, roffblkin, roffblkout);
1.4 kristaps 151: int roff_engine(struct rofftree *, char *, size_t);
152: int roff_free(struct rofftree *, int);
153:
1.1 kristaps 154: __END_DECLS
155:
156: #endif /*!PRIVATE_H*/
CVSweb