![]() ![]() | ![]() |
version 1.6, 2009/09/21 14:56:56 | version 1.19, 2009/11/14 11:58:36 | ||
---|---|---|---|
|
|
||
ATTR_STYLE, | ATTR_STYLE, | ||
ATTR_WIDTH, | ATTR_WIDTH, | ||
ATTR_VALIGN, | ATTR_VALIGN, | ||
ATTR_TARGET, | |||
ATTR_ID, | |||
ATTR_SUMMARY, | |||
ATTR_MAX | ATTR_MAX | ||
}; | }; | ||
struct tag { | struct tag { | ||
struct tag *next; | |||
enum htmltag tag; | enum htmltag tag; | ||
SLIST_ENTRY(tag) entry; | |||
}; | }; | ||
struct ord { | struct ord { | ||
int pos; | struct ord *next; | ||
const void *cookie; | const void *cookie; | ||
SLIST_ENTRY(ord) entry; | int pos; | ||
}; | }; | ||
SLIST_HEAD(tagq, tag); | struct tagq { | ||
SLIST_HEAD(ordq, ord); | struct tag *head; | ||
}; | |||
struct ordq { | |||
struct ord *head; | |||
}; | |||
struct htmlpair { | struct htmlpair { | ||
enum htmlattr key; | enum htmlattr key; | ||
char *val; | const char *val; | ||
}; | }; | ||
#define PAIR_CLASS_INIT(p, v) \ | |||
do { (p)->key = ATTR_CLASS; \ | |||
(p)->val = (v); } while (/* CONSTCOND */ 0) | |||
#define PAIR_HREF_INIT(p, v) \ | |||
do { (p)->key = ATTR_HREF; \ | |||
(p)->val = (v); } while (/* CONSTCOND */ 0) | |||
#define PAIR_STYLE_INIT(p, h) \ | |||
do { (p)->key = ATTR_STYLE; \ | |||
(p)->val = (h)->buf; } while (/* CONSTCOND */ 0) | |||
#define PAIR_SUMMARY_INIT(p, v) \ | |||
do { (p)->key = ATTR_SUMMARY; \ | |||
(p)->val = (v); } while (/* CONSTCOND */ 0) | |||
struct html { | struct html { | ||
int flags; | int flags; | ||
#define HTML_NOSPACE (1 << 0) | #define HTML_NOSPACE (1 << 0) | ||
#define HTML_NEWLINE (1 << 1) | #define HTML_NEWLINE (1 << 1) | ||
#define HTML_IGNDELIM (1 << 2) | |||
struct tagq tags; | struct tagq tags; | ||
struct ordq ords; | struct ordq ords; | ||
void *symtab; | void *symtab; | ||
char *base; | char *base; | ||
char *base_man; | |||
char *base_includes; | |||
char *style; | char *style; | ||
char buf[BUFSIZ]; | |||
size_t buflen; | |||
struct tag *metaf; | |||
}; | }; | ||
struct roffsu; | |||
void print_gen_doctype(struct html *); | void print_gen_doctype(struct html *); | ||
void print_gen_head(struct html *); | void print_gen_head(struct html *); | ||
struct tag *print_otag(struct html *, enum htmltag, | struct tag *print_otag(struct html *, enum htmltag, | ||
|
|
||
void print_tagq(struct html *, const struct tag *); | void print_tagq(struct html *, const struct tag *); | ||
void print_stagq(struct html *, const struct tag *); | void print_stagq(struct html *, const struct tag *); | ||
void print_text(struct html *, const char *); | void print_text(struct html *, const char *); | ||
void bufcat_su(struct html *, const char *, | |||
const struct roffsu *); | |||
void buffmt_man(struct html *, | |||
const char *, const char *); | |||
void buffmt_includes(struct html *, const char *); | |||
void buffmt(struct html *, const char *, ...); | |||
void bufcat(struct html *, const char *); | |||
void bufcat_style(struct html *, | |||
const char *, const char *); | |||
void bufncat(struct html *, const char *, size_t); | |||
void bufinit(struct html *); | |||
void html_idcat(char *, const char *, int); | |||
__END_DECLS | __END_DECLS | ||