[BACK]Return to private.h CVS log [TXT][DIR] Up to [cvsweb.bsd.lv] / mandoc

Annotation of mandoc/private.h, Revision 1.8

1.8     ! kristaps    1: /* $Id: private.h,v 1.7 2008/11/25 16:49:57 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:
1.7       kristaps   22: /* Input buffer (input read into buffer, then filled when empty). */
1.1       kristaps   23: struct md_rbuf {
1.7       kristaps   24:        int              fd;            /* Open descriptor. */
                     25:        char            *name;          /* Name of file. */
                     26:        char            *buf;           /* Buffer. */
                     27:        size_t           bufsz;         /* Size of buffer. */
                     28:        size_t           line;          /* Current line number. */
1.1       kristaps   29: };
                     30:
1.7       kristaps   31: /* Output buffer (output buffered until full, then flushed). */
1.1       kristaps   32: struct md_mbuf {
1.7       kristaps   33:        int              fd;            /* Open descriptor. */
                     34:        char            *name;          /* Name of file. */
                     35:        char            *buf;           /* Buffer. */
                     36:        size_t           bufsz;         /* Size of buffer. */
                     37:        size_t           pos;           /* Position in buffer. */
1.1       kristaps   38: };
                     39:
1.5       kristaps   40: #define        ROFF___          0
                     41: #define        ROFF_Dd          1
                     42: #define        ROFF_Dt          2
                     43: #define        ROFF_Os          3
                     44: #define        ROFF_Sh          4
1.6       kristaps   45: #define        ROFF_Ss          5
                     46: #define        ROFF_Pp          6
                     47: #define        ROFF_D1          7
                     48: #define        ROFF_Dl          8
                     49: #define        ROFF_Bd          9
                     50: #define        ROFF_Ed          10
                     51: #define        ROFF_Bl          11
                     52: #define        ROFF_El          12
                     53: #define        ROFF_It          13
1.7       kristaps   54: #define        ROFF_Ad          15
                     55: #define        ROFF_An          16
                     56: #define        ROFF_Ar          17
                     57: #define        ROFF_Cd          18
                     58: #define        ROFF_Cm          19
                     59: #define        ROFF_Dv          20
                     60: #define        ROFF_Er          21
                     61: #define        ROFF_Ev          22
                     62: #define        ROFF_Ex          23
                     63: #define        ROFF_Fa          24
                     64: #define        ROFF_Fd          25
                     65: #define        ROFF_Fl          26
                     66: #define        ROFF_Fn          27
                     67: #define        ROFF_Ft          28
                     68: #define        ROFF_Ic          29
                     69: #define        ROFF_In          30
                     70: #define        ROFF_Li          31
                     71: #define        ROFF_Nd          32
                     72: #define        ROFF_Nm          33
                     73: #define        ROFF_Op          34
                     74: #define        ROFF_Ot          35
                     75: #define        ROFF_Pa          36
                     76: #define        ROFF_Rv          37
                     77: #define        ROFF_St          38
                     78: #define        ROFF_Va          39
                     79: #define        ROFF_Vt          40
                     80: #define        ROFF_Xr          41
                     81: #define        ROFF__A          42
                     82: #define        ROFF__B          43
                     83: #define        ROFF__D          44
                     84: #define        ROFF__I          45
                     85: #define        ROFF__J          46
                     86: #define        ROFF__N          47
                     87: #define        ROFF__O          48
                     88: #define        ROFF__P          49
                     89: #define        ROFF__R          50
                     90: #define        ROFF__T          51
                     91: #define        ROFF__V          52
                     92: #define ROFF_Ac                 53
                     93: #define ROFF_Ao                 54
                     94: #define ROFF_Aq                 55
                     95: #define ROFF_At                 56
                     96: #define ROFF_Bc                 57
                     97: #define ROFF_Bf                 58
                     98: #define ROFF_Bo                 59
                     99: #define ROFF_Bq                 60
                    100: #define ROFF_Bsx        61
                    101: #define ROFF_Bx                 62
                    102: #define ROFF_Db                 63
                    103: #define ROFF_Dc                 64
                    104: #define ROFF_Do                 65
                    105: #define ROFF_Dq                 66
                    106: #define ROFF_Ec                 67
                    107: #define ROFF_Ef                 68
                    108: #define ROFF_Em                 60
                    109: #define ROFF_Eo                 70
                    110: #define ROFF_Fx                 71
                    111: #define ROFF_Ms                 72
                    112: #define ROFF_No                 73
                    113: #define ROFF_Ns                 74
                    114: #define ROFF_Nx                 75
                    115: #define ROFF_Ox                 76
                    116: #define ROFF_Pc                 77
                    117: #define ROFF_Pf                 78
                    118: #define ROFF_Po                 79
                    119: #define ROFF_Pq                 80
                    120: #define ROFF_Qc                 81
                    121: #define ROFF_Ql                 82
                    122: #define ROFF_Qo                 83
                    123: #define ROFF_Qq                 84
                    124: #define ROFF_Re                 85
                    125: #define ROFF_Rs                 86
                    126: #define ROFF_Sc                 87
                    127: #define ROFF_So                 88
                    128: #define ROFF_Sq                 89
                    129: #define ROFF_Sm                 90
                    130: #define ROFF_Sx                 91
                    131: #define ROFF_Sy                 92
                    132: #define ROFF_Tn                 93
                    133: #define ROFF_Ux                 94
                    134: #define ROFF_Xc                 95
                    135: #define ROFF_Xo                 96
                    136: #define        ROFF_MAX         97
1.5       kristaps  137:
                    138: #define        ROFF_Split       0
                    139: #define        ROFF_Nosplit     1
1.6       kristaps  140: #define        ROFF_Ragged      2
                    141: #define        ROFF_Unfilled    3
                    142: #define        ROFF_Literal     4
                    143: #define        ROFF_File        5
                    144: #define        ROFF_Offset      6
                    145: #define        ROFF_Bullet      7
                    146: #define        ROFF_Dash        8
                    147: #define        ROFF_Hyphen      9
                    148: #define        ROFF_Item        10
                    149: #define        ROFF_Enum        11
                    150: #define        ROFF_Tag         12
                    151: #define        ROFF_Diag        13
                    152: #define        ROFF_Hang        14
                    153: #define        ROFF_Ohang       15
                    154: #define        ROFF_Inset       16
                    155: #define        ROFF_Column      17
1.7       kristaps  156: #define        ROFF_Width       18
                    157: #define        ROFF_Compact     19
                    158: #define        ROFF_ARGMAX      20
1.6       kristaps  159:
1.7       kristaps  160: extern const char *const *toknames;
                    161: extern const char *const *tokargnames;
1.5       kristaps  162:
                    163: /* FIXME: have a md_roff with all necessary parameters. */
                    164:
1.8     ! kristaps  165: /* FIXME: have roffbegin and roffend for doc head/foot. */
        !           166:
        !           167: struct roffcb {
        !           168:        int     (*roffhead)(void);
        !           169:        int     (*rofftail)(void);
        !           170:        int     (*roffin)(int, int *, char **);
        !           171:        int     (*roffout)(int);
        !           172:        int     (*roffblkin)(int);
        !           173:        int     (*roffblkout)(int);
        !           174: };
1.5       kristaps  175:
1.1       kristaps  176: __BEGIN_DECLS
                    177:
1.4       kristaps  178: typedef        void  (*(*md_init)(const struct md_args *,
                    179:                        struct md_mbuf *, const struct md_rbuf *));
                    180: typedef        int     (*md_line)(void *, char *, size_t);
                    181: typedef        int     (*md_exit)(void *, int);
                    182:
                    183: void            *md_init_html4_strict(const struct md_args *,
                    184:                        struct md_mbuf *, const struct md_rbuf *);
                    185: int              md_line_html4_strict(void *, char *, size_t);
                    186: int              md_exit_html4_strict(void *, int);
                    187:
                    188: void            *md_init_dummy(const struct md_args *,
                    189:                        struct md_mbuf *, const struct md_rbuf *);
                    190: int              md_line_dummy(void *, char *, size_t);
                    191: int              md_exit_dummy(void *, int);
1.1       kristaps  192:
                    193: int              md_buf_puts(struct md_mbuf *, const char *, size_t);
                    194: int              md_buf_putchar(struct md_mbuf *, char);
                    195: int              md_buf_putstring(struct md_mbuf *, const char *);
                    196:
1.4       kristaps  197: struct rofftree;
                    198:
                    199: struct rofftree *roff_alloc(const struct md_args *,
1.5       kristaps  200:                        struct md_mbuf *, const struct md_rbuf *,
1.8     ! kristaps  201:                        const struct roffcb *);
1.4       kristaps  202: int              roff_engine(struct rofftree *, char *, size_t);
                    203: int              roff_free(struct rofftree *, int);
                    204:
1.1       kristaps  205: __END_DECLS
                    206:
                    207: #endif /*!PRIVATE_H*/

CVSweb