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

Annotation of mandoc/private.h, Revision 1.7

1.7     ! kristaps    1: /* $Id: private.h,v 1.6 2008/11/25 12:14:02 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:
                    165: typedef        int     (*roffin)(int, int *, char **);
                    166: typedef        int     (*roffout)(int);
                    167: typedef        int     (*roffblkin)(int);
                    168: typedef        int     (*roffblkout)(int);
                    169:
1.1       kristaps  170: __BEGIN_DECLS
                    171:
1.4       kristaps  172: typedef        void  (*(*md_init)(const struct md_args *,
                    173:                        struct md_mbuf *, const struct md_rbuf *));
                    174: typedef        int     (*md_line)(void *, char *, size_t);
                    175: typedef        int     (*md_exit)(void *, int);
                    176:
                    177: void            *md_init_html4_strict(const struct md_args *,
                    178:                        struct md_mbuf *, const struct md_rbuf *);
                    179: int              md_line_html4_strict(void *, char *, size_t);
                    180: int              md_exit_html4_strict(void *, int);
                    181:
                    182: void            *md_init_dummy(const struct md_args *,
                    183:                        struct md_mbuf *, const struct md_rbuf *);
                    184: int              md_line_dummy(void *, char *, size_t);
                    185: int              md_exit_dummy(void *, int);
1.1       kristaps  186:
                    187: int              md_buf_puts(struct md_mbuf *, const char *, size_t);
                    188: int              md_buf_putchar(struct md_mbuf *, char);
                    189: int              md_buf_putstring(struct md_mbuf *, const char *);
                    190:
1.4       kristaps  191: struct rofftree;
                    192:
                    193: struct rofftree *roff_alloc(const struct md_args *,
1.5       kristaps  194:                        struct md_mbuf *, const struct md_rbuf *,
1.6       kristaps  195:                        roffin, roffout, roffblkin, roffblkout);
1.4       kristaps  196: int              roff_engine(struct rofftree *, char *, size_t);
                    197: int              roff_free(struct rofftree *, int);
                    198:
1.1       kristaps  199: __END_DECLS
                    200:
                    201: #endif /*!PRIVATE_H*/

CVSweb