X-Git-Url: https://git.cameronkatri.com/mandoc.git/blobdiff_plain/7ac873295958b94652c6afe6869cab75433c5e4d..ef0353dfc9e7fa3b8dd811c3b71e0e3af38aa552:/html.h

diff --git a/html.h b/html.h
index 5f462d97..561d06e2 100644
--- a/html.h
+++ b/html.h
@@ -1,6 +1,6 @@
-/*	$Id: html.h,v 1.23 2010/04/05 08:51:56 kristaps Exp $ */
+/*	$Id: html.h,v 1.40 2011/01/29 14:49:44 kristaps Exp $ */
 /*
- * Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
+ * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
  * Permission to use, copy, modify, and distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -33,12 +33,23 @@ enum	htmltag {
 	TAG_BR,
 	TAG_A,
 	TAG_TABLE,
+	TAG_TBODY,
 	TAG_COL,
 	TAG_TR,
 	TAG_TD,
 	TAG_LI,
 	TAG_UL,
 	TAG_OL,
+	TAG_DL,
+	TAG_DT,
+	TAG_DD,
+	TAG_BLOCKQUOTE,
+	TAG_P,
+	TAG_PRE,
+	TAG_B,
+	TAG_I,
+	TAG_CODE,
+	TAG_SMALL,
 	TAG_MAX
 };
 
@@ -53,10 +64,10 @@ enum	htmlattr {
 	ATTR_CLASS,
 	ATTR_STYLE,
 	ATTR_WIDTH,
-	ATTR_VALIGN,
-	ATTR_TARGET,
 	ATTR_ID,
 	ATTR_SUMMARY,
+	ATTR_ALIGN,
+	ATTR_COLSPAN,
 	ATTR_MAX
 };
 
@@ -72,18 +83,9 @@ struct	tag {
 	enum htmltag	  tag;
 };
 
-struct	ord {
-	struct ord	 *next;
-	const void	 *cookie;
-	int		  pos;
-};
-
 struct tagq {
 	struct tag	 *head;
 };
-struct ordq {
-	struct ord	 *head;
-};
 
 struct	htmlpair {
 	enum htmlattr	  key;
@@ -109,33 +111,36 @@ enum	htmltype {
 
 struct	html {
 	int		  flags;
-#define	HTML_NOSPACE	 (1 << 0)
-#define	HTML_IGNDELIM	 (1 << 2)
-	struct tagq	  tags;
-	struct ordq	  ords;
-	void		 *symtab;
-	char		 *base;
-	char		 *base_man;
-	char		 *base_includes;
-	char		 *style;
-	char		  buf[BUFSIZ];
+#define	HTML_NOSPACE	 (1 << 0) /* suppress next space */
+#define	HTML_IGNDELIM	 (1 << 1)
+#define	HTML_KEEP	 (1 << 2)
+#define	HTML_PREKEEP	 (1 << 3)
+#define	HTML_NONOSPACE	 (1 << 4) /* never add spaces */
+#define	HTML_LITERAL	 (1 << 5) /* literal (e.g., <PRE>) context */
+	struct tagq	  tags; /* stack of open tags */
+	struct rofftbl	  tbl; /* current table */
+	struct tag	 *tblt; /* current open table scope */
+	void		 *symtab; /* character-escapes */
+	char		 *base_man; /* base for manpage href */
+	char		 *base_includes; /* base for include href */
+	char		 *style; /* style-sheet URI */
+	char		  buf[BUFSIZ]; /* see bufcat and friends */
 	size_t		  buflen;
-	struct tag	 *metaf;
-	enum htmlfont	  metal;
-	enum htmlfont	  metac;
+	struct tag	 *metaf; /* current open font scope */
+	enum htmlfont	  metal; /* last used font */
+	enum htmlfont	  metac; /* current font mode */
 	enum htmltype	  type;
 };
 
-struct	roffsu;
-
 void		  print_gen_decls(struct html *);
 void		  print_gen_head(struct html *);
-struct tag	 *print_ofont(struct html *, enum htmlfont);
 struct tag	 *print_otag(struct html *, enum htmltag, 
 				int, const struct htmlpair *);
 void		  print_tagq(struct html *, const struct tag *);
 void		  print_stagq(struct html *, const struct tag *);
 void		  print_text(struct html *, const char *);
+void		  print_tblclose(struct html *);
+void		  print_tbl(struct html *, const struct tbl_span *);
 
 void		  bufcat_su(struct html *, const char *, 
 			const struct roffsu *);