=================================================================== RCS file: /cvs/mandoc/Attic/private.h,v retrieving revision 1.7 retrieving revision 1.18 diff -u -p -r1.7 -r1.18 --- mandoc/Attic/private.h 2008/11/25 16:49:57 1.7 +++ mandoc/Attic/private.h 2008/11/30 18:50:44 1.18 @@ -1,4 +1,4 @@ -/* $Id: private.h,v 1.7 2008/11/25 16:49:57 kristaps Exp $ */ +/* $Id: private.h,v 1.18 2008/11/30 18:50:44 kristaps Exp $ */ /* * Copyright (c) 2008 Kristaps Dzonsons * @@ -51,89 +51,95 @@ struct md_mbuf { #define ROFF_Bl 11 #define ROFF_El 12 #define ROFF_It 13 -#define ROFF_Ad 15 -#define ROFF_An 16 -#define ROFF_Ar 17 -#define ROFF_Cd 18 -#define ROFF_Cm 19 -#define ROFF_Dv 20 -#define ROFF_Er 21 -#define ROFF_Ev 22 -#define ROFF_Ex 23 -#define ROFF_Fa 24 -#define ROFF_Fd 25 -#define ROFF_Fl 26 -#define ROFF_Fn 27 -#define ROFF_Ft 28 -#define ROFF_Ic 29 -#define ROFF_In 30 -#define ROFF_Li 31 -#define ROFF_Nd 32 -#define ROFF_Nm 33 -#define ROFF_Op 34 -#define ROFF_Ot 35 -#define ROFF_Pa 36 -#define ROFF_Rv 37 -#define ROFF_St 38 -#define ROFF_Va 39 -#define ROFF_Vt 40 -#define ROFF_Xr 41 -#define ROFF__A 42 -#define ROFF__B 43 -#define ROFF__D 44 -#define ROFF__I 45 -#define ROFF__J 46 -#define ROFF__N 47 -#define ROFF__O 48 -#define ROFF__P 49 -#define ROFF__R 50 -#define ROFF__T 51 -#define ROFF__V 52 -#define ROFF_Ac 53 -#define ROFF_Ao 54 -#define ROFF_Aq 55 -#define ROFF_At 56 -#define ROFF_Bc 57 -#define ROFF_Bf 58 -#define ROFF_Bo 59 -#define ROFF_Bq 60 -#define ROFF_Bsx 61 -#define ROFF_Bx 62 -#define ROFF_Db 63 -#define ROFF_Dc 64 -#define ROFF_Do 65 -#define ROFF_Dq 66 -#define ROFF_Ec 67 -#define ROFF_Ef 68 -#define ROFF_Em 60 -#define ROFF_Eo 70 -#define ROFF_Fx 71 -#define ROFF_Ms 72 -#define ROFF_No 73 -#define ROFF_Ns 74 -#define ROFF_Nx 75 -#define ROFF_Ox 76 -#define ROFF_Pc 77 -#define ROFF_Pf 78 -#define ROFF_Po 79 -#define ROFF_Pq 80 -#define ROFF_Qc 81 -#define ROFF_Ql 82 -#define ROFF_Qo 83 -#define ROFF_Qq 84 -#define ROFF_Re 85 -#define ROFF_Rs 86 -#define ROFF_Sc 87 -#define ROFF_So 88 -#define ROFF_Sq 89 -#define ROFF_Sm 90 -#define ROFF_Sx 91 -#define ROFF_Sy 92 -#define ROFF_Tn 93 -#define ROFF_Ux 94 -#define ROFF_Xc 95 -#define ROFF_Xo 96 -#define ROFF_MAX 97 +#define ROFF_Ad 14 +#define ROFF_An 15 +#define ROFF_Ar 16 +#define ROFF_Cd 17 +#define ROFF_Cm 18 +#define ROFF_Dv 19 +#define ROFF_Er 20 +#define ROFF_Ev 21 +#define ROFF_Ex 22 +#define ROFF_Fa 23 +#define ROFF_Fd 24 +#define ROFF_Fl 25 +#define ROFF_Fn 26 +#define ROFF_Ft 27 +#define ROFF_Ic 28 +#define ROFF_In 29 +#define ROFF_Li 30 +#define ROFF_Nd 31 +#define ROFF_Nm 32 +#define ROFF_Op 33 +#define ROFF_Ot 34 +#define ROFF_Pa 35 +#define ROFF_Rv 36 +#define ROFF_St 37 +#define ROFF_Va 38 +#define ROFF_Vt 39 +#define ROFF_Xr 40 +#define ROFF__A 41 +#define ROFF__B 42 +#define ROFF__D 43 +#define ROFF__I 44 +#define ROFF__J 45 +#define ROFF__N 46 +#define ROFF__O 47 +#define ROFF__P 48 +#define ROFF__R 49 +#define ROFF__T 50 +#define ROFF__V 51 +#define ROFF_Ac 52 +#define ROFF_Ao 53 +#define ROFF_Aq 54 +#define ROFF_At 55 +#define ROFF_Bc 56 +#define ROFF_Bf 57 +#define ROFF_Bo 58 +#define ROFF_Bq 59 +#define ROFF_Bsx 60 +#define ROFF_Bx 61 +#define ROFF_Db 62 +#define ROFF_Dc 63 +#define ROFF_Do 64 +#define ROFF_Dq 65 +#define ROFF_Ec 66 +#define ROFF_Ef 67 +#define ROFF_Em 68 +#define ROFF_Eo 69 +#define ROFF_Fx 70 +#define ROFF_Ms 71 +#define ROFF_No 72 +#define ROFF_Ns 73 +#define ROFF_Nx 74 +#define ROFF_Ox 75 +#define ROFF_Pc 76 +#define ROFF_Pf 77 +#define ROFF_Po 78 +#define ROFF_Pq 79 +#define ROFF_Qc 80 +#define ROFF_Ql 81 +#define ROFF_Qo 82 +#define ROFF_Qq 83 +#define ROFF_Re 84 +#define ROFF_Rs 85 +#define ROFF_Sc 86 +#define ROFF_So 87 +#define ROFF_Sq 88 +#define ROFF_Sm 89 +#define ROFF_Sx 90 +#define ROFF_Sy 91 +#define ROFF_Tn 92 +#define ROFF_Ux 93 +#define ROFF_Xc 94 +#define ROFF_Xo 95 +#define ROFF_Fo 96 +#define ROFF_Fc 97 +#define ROFF_Oo 98 +#define ROFF_Oc 99 +#define ROFF_Bk 100 +#define ROFF_Ek 101 +#define ROFF_MAX 102 #define ROFF_Split 0 #define ROFF_Nosplit 1 @@ -155,34 +161,82 @@ struct md_mbuf { #define ROFF_Column 17 #define ROFF_Width 18 #define ROFF_Compact 19 -#define ROFF_ARGMAX 20 +#define ROFF_Std 20 +#define ROFF_p1003_1_88 21 +#define ROFF_p1003_1_90 22 +#define ROFF_p1003_1_96 23 +#define ROFF_p1003_1_2001 24 +#define ROFF_p1003_1_2004 25 +#define ROFF_p1003_1 26 +#define ROFF_p1003_1b 27 +#define ROFF_p1003_1b_93 28 +#define ROFF_p1003_1c_95 29 +#define ROFF_p1003_1g_2000 30 +#define ROFF_p1003_2_92 31 +#define ROFF_p1387_2_95 32 +#define ROFF_p1003_2 33 +#define ROFF_p1387_2 34 +#define ROFF_isoC_90 35 +#define ROFF_isoC_amd1 36 +#define ROFF_isoC_tcor1 37 +#define ROFF_isoC_tcor2 38 +#define ROFF_isoC_99 39 +#define ROFF_ansiC 40 +#define ROFF_ansiC_89 41 +#define ROFF_ansiC_99 42 +#define ROFF_ieee754 43 +#define ROFF_iso8802_3 44 +#define ROFF_xpg3 45 +#define ROFF_xpg4 46 +#define ROFF_xpg4_2 47 +#define ROFF_xpg4_3 48 +#define ROFF_xbd5 49 +#define ROFF_xcu5 50 +#define ROFF_xsh5 51 +#define ROFF_xns5 52 +#define ROFF_xns5_2d2_0 53 +#define ROFF_xcurses4_2 54 +#define ROFF_susv2 55 +#define ROFF_susv3 56 +#define ROFF_svid4 57 +#define ROFF_Filled 58 +#define ROFF_Words 59 +#define ROFF_ARGMAX 60 extern const char *const *toknames; extern const char *const *tokargnames; -/* FIXME: have a md_roff with all necessary parameters. */ +enum roffmsg { ROFF_WARN, ROFF_ERROR }; -typedef int (*roffin)(int, int *, char **); -typedef int (*roffout)(int); -typedef int (*roffblkin)(int); -typedef int (*roffblkout)(int); +struct roffcb { + void (*roffmsg)(void *, enum roffmsg, + const char *, const char *, char *); + int (*roffhead)(void *); + int (*rofftail)(void *); + int (*roffin)(void *, int, int *, char **); + int (*roffdata)(void *, int, char *); + int (*roffout)(void *, int); + int (*roffblkin)(void *, int, int *, char **); + int (*roffblkout)(void *, int); + int (*roffspecial)(void *, int); +}; __BEGIN_DECLS typedef void (*(*md_init)(const struct md_args *, struct md_mbuf *, const struct md_rbuf *)); -typedef int (*md_line)(void *, char *, size_t); +typedef int (*md_line)(void *, char *); typedef int (*md_exit)(void *, int); void *md_init_html4_strict(const struct md_args *, struct md_mbuf *, const struct md_rbuf *); -int md_line_html4_strict(void *, char *, size_t); +int md_line_html4_strict(void *, char *); int md_exit_html4_strict(void *, int); -void *md_init_dummy(const struct md_args *, +void *md_init_valid(const struct md_args *, struct md_mbuf *, const struct md_rbuf *); -int md_line_dummy(void *, char *, size_t); -int md_exit_dummy(void *, int); +int md_line_valid(void *, char *); +int md_exit_valid(void *, int); int md_buf_puts(struct md_mbuf *, const char *, size_t); int md_buf_putchar(struct md_mbuf *, char); @@ -190,10 +244,8 @@ int md_buf_putstring(struct md_mbuf *, const char struct rofftree; -struct rofftree *roff_alloc(const struct md_args *, - struct md_mbuf *, const struct md_rbuf *, - roffin, roffout, roffblkin, roffblkout); -int roff_engine(struct rofftree *, char *, size_t); +struct rofftree *roff_alloc(const struct roffcb *, void *); +int roff_engine(struct rofftree *, char *); int roff_free(struct rofftree *, int); __END_DECLS