Return to man.h CVS log | Up to [cvsweb.bsd.lv] / mandoc |
version 1.48, 2010/12/08 10:58:22 | version 1.56, 2011/03/22 09:48:13 | ||
---|---|---|---|
|
|
||
/* $Id$ */ | /* $Id$ */ | ||
/* | /* | ||
* Copyright (c) 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv> | * Copyright (c) 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> | ||
* | * | ||
* Permission to use, copy, modify, and distribute this software for any | * Permission to use, copy, modify, and distribute this software for any | ||
* purpose with or without fee is hereby granted, provided that the above | * purpose with or without fee is hereby granted, provided that the above | ||
|
|
||
MAN_ROOT, | MAN_ROOT, | ||
MAN_BLOCK, | MAN_BLOCK, | ||
MAN_HEAD, | MAN_HEAD, | ||
MAN_BODY | MAN_BODY, | ||
MAN_TBL, | |||
MAN_EQN | |||
}; | }; | ||
/* | /* | ||
|
|
||
*/ | */ | ||
struct man_meta { | struct man_meta { | ||
char *msec; /* `TH' section (1, 3p, etc.) */ | char *msec; /* `TH' section (1, 3p, etc.) */ | ||
time_t date; /* `TH' normalised date */ | char *date; /* `TH' normalised date */ | ||
char *rawdate; /* raw `TH' date */ | |||
char *vol; /* `TH' volume */ | char *vol; /* `TH' volume */ | ||
char *title; /* `TH' title (e.g., FOO) */ | char *title; /* `TH' title (e.g., FOO) */ | ||
char *source; /* `TH' source (e.g., GNU) */ | char *source; /* `TH' source (e.g., GNU) */ | ||
|
|
||
enum mant tok; /* tok or MAN__MAX if none */ | enum mant tok; /* tok or MAN__MAX if none */ | ||
int flags; | int flags; | ||
#define MAN_VALID (1 << 0) /* has been validated */ | #define MAN_VALID (1 << 0) /* has been validated */ | ||
#define MAN_ACTED (1 << 1) /* has been acted upon */ | |||
#define MAN_EOS (1 << 2) /* at sentence boundary */ | #define MAN_EOS (1 << 2) /* at sentence boundary */ | ||
#define MAN_LINE (1 << 3) /* first macro/text on line */ | |||
enum man_type type; /* AST node type */ | enum man_type type; /* AST node type */ | ||
char *string; /* TEXT node argument */ | char *string; /* TEXT node argument */ | ||
struct man_node *head; /* BLOCK node HEAD ptr */ | struct man_node *head; /* BLOCK node HEAD ptr */ | ||
struct man_node *body; /* BLOCK node BODY ptr */ | struct man_node *body; /* BLOCK node BODY ptr */ | ||
const struct tbl_span *span; /* TBL */ | |||
const struct eqn *eqn; /* EQN */ | |||
}; | }; | ||
/* | /* | ||
|
|
||
__BEGIN_DECLS | __BEGIN_DECLS | ||
struct man; | struct man; | ||
void man_free(struct man *); | |||
struct man *man_alloc(struct regset *, void *, mandocmsg); | |||
void man_reset(struct man *); | |||
int man_parseln(struct man *, int, char *, int); | |||
int man_endparse(struct man *); | |||
const struct man_node *man_node(const struct man *); | const struct man_node *man_node(const struct man *); | ||
const struct man_meta *man_meta(const struct man *); | const struct man_meta *man_meta(const struct man *); |