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

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