=================================================================== RCS file: /cvs/mandoc/libman.h,v retrieving revision 1.1 retrieving revision 1.5 diff -u -p -r1.1 -r1.5 --- mandoc/libman.h 2009/03/23 14:22:11 1.1 +++ mandoc/libman.h 2009/03/25 15:36:05 1.5 @@ -1,4 +1,4 @@ -/* $Id: libman.h,v 1.1 2009/03/23 14:22:11 kristaps Exp $ */ +/* $Id: libman.h,v 1.5 2009/03/25 15:36:05 kristaps Exp $ */ /* * Copyright (c) 2009 Kristaps Dzonsons * @@ -27,39 +27,33 @@ enum man_next { }; struct man { + void *data; + struct man_cb cb; void *htab; int flags; -#define MAN_LITERAL (1 << 1) +#define MAN_HALT (1 << 0) enum man_next next; struct man_node *last; struct man_node *first; struct man_meta meta; }; - -#define MACRO_PROT_ARGS struct man *man, int tok, int line, \ - int ppos, int *pos, char *buf - -struct man_macro { - int (*fp)(MACRO_PROT_ARGS); - int flags; -#define MDOC_PROLOGUE (1 << 0) -}; - -extern const struct man_macro *const man_macros; - __BEGIN_DECLS int man_word_alloc(struct man *, int, int, const char *); int man_elem_alloc(struct man *, int, int, int); -int man_block_alloc(struct man *, int, int, int); -int man_head_alloc(struct man *, int, int, int); -int man_body_alloc(struct man *, int, int, int); void man_node_free(struct man_node *); void man_node_freelist(struct man_node *); void *man_hash_alloc(void); +int man_macro(struct man *, int, + int, int, int *, char *); int man_hash_find(const void *, const char *); void man_hash_free(void *); +int man_macroend(struct man *); +int man_vwarn(struct man *, int, int, const char *, ...); +int man_verr(struct man *, int, int, const char *, ...); +int man_valid_post(struct man *); +int man_action_post(struct man *); __END_DECLS