version 1.73, 2016/07/19 13:36:13 |
version 1.74, 2017/01/17 01:47:51 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008-2011, 2014 Kristaps Dzonsons <kristaps@bsd.lv> |
|
* Copyright (c) 2017 Ingo Schwarze <schwarze@openbsd.org> |
* |
* |
* 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 |
|
|
TAG_MAX |
TAG_MAX |
}; |
}; |
|
|
enum htmlattr { |
|
ATTR_NAME, |
|
ATTR_REL, |
|
ATTR_HREF, |
|
ATTR_TYPE, |
|
ATTR_MEDIA, |
|
ATTR_CLASS, |
|
ATTR_STYLE, |
|
ATTR_ID, |
|
ATTR_COLSPAN, |
|
ATTR_CHARSET, |
|
ATTR_OPEN, |
|
ATTR_CLOSE, |
|
ATTR_MATHVARIANT, |
|
ATTR_MAX |
|
}; |
|
|
|
enum htmlfont { |
enum htmlfont { |
HTMLFONT_NONE = 0, |
HTMLFONT_NONE = 0, |
HTMLFONT_BOLD, |
HTMLFONT_BOLD, |
|
|
struct tag *head; |
struct tag *head; |
}; |
}; |
|
|
struct htmlpair { |
|
enum htmlattr key; |
|
const char *val; |
|
}; |
|
|
|
#define PAIR_INIT(p, t, v) \ |
|
do { \ |
|
(p)->key = (t); \ |
|
(p)->val = (v); \ |
|
} while (/* CONSTCOND */ 0) |
|
|
|
#define PAIR_ID_INIT(p, v) PAIR_INIT(p, ATTR_ID, v) |
|
#define PAIR_CLASS_INIT(p, v) PAIR_INIT(p, ATTR_CLASS, v) |
|
#define PAIR_HREF_INIT(p, v) PAIR_INIT(p, ATTR_HREF, v) |
|
#define PAIR_STYLE_INIT(p, h) PAIR_INIT(p, ATTR_STYLE, (h)->buf) |
|
|
|
struct html { |
struct html { |
int flags; |
int flags; |
#define HTML_NOSPACE (1 << 0) /* suppress next space */ |
#define HTML_NOSPACE (1 << 0) /* suppress next space */ |
|
|
|
|
void print_gen_decls(struct html *); |
void print_gen_decls(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, const char *, ...); |
int, const struct htmlpair *); |
|
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 *); |