]> git.cameronkatri.com Git - mandoc.git/blobdiff - eqn_html.c
Get ready for a version.
[mandoc.git] / eqn_html.c
index 78e11d434ee0c14c8f8d2b4ddb957fe43d7d0c8b..80c82f1de5b56b05122968d8b1ad7744688a891b 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: eqn_html.c,v 1.1 2011/07/23 22:57:13 kristaps Exp $ */
+/*     $Id: eqn_html.c,v 1.2 2011/07/24 10:09:03 kristaps Exp $ */
 /*
  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  *
 #include "out.h"
 #include "html.h"
 
+static const enum htmltag fontmap[EQNFONT__MAX] = {
+       TAG_SPAN, /* EQNFONT_NONE */
+       TAG_SPAN, /* EQNFONT_ROMAN */
+       TAG_B, /* EQNFONT_BOLD */
+       TAG_B, /* EQNFONT_FAT */
+       TAG_I /* EQNFONT_ITALIC */
+};
+
+
 static void    eqn_box(struct html *, const struct eqn_box *);
-static void    eqn_box_post(struct html *, const struct eqn_box *);
-static void    eqn_box_pre(struct html *, const struct eqn_box *);
-static void    eqn_text(struct html *, const struct eqn_box *);
 
 void
 print_eqn(struct html *p, const struct eqn *ep)
@@ -51,39 +57,25 @@ print_eqn(struct html *p, const struct eqn *ep)
 static void
 eqn_box(struct html *p, const struct eqn_box *bp)
 {
+       struct tag      *t;
 
-       eqn_box_pre(p, bp);
-       eqn_text(p, bp);
-
-       if (bp->first)
-               eqn_box(p, bp->first);
-
-       eqn_box_post(p, bp);
-
-       if (bp->next)
-               eqn_box(p, bp->next);
-}
-
-static void
-eqn_box_pre(struct html *p, const struct eqn_box *bp)
-{
+       t = EQNFONT_NONE == bp->font ? NULL : 
+               print_otag(p, fontmap[(int)bp->font], 0, NULL);
 
        if (bp->left)
                print_text(p, bp->left);
-}
+       
+       if (bp->text)
+               print_text(p, bp->text);
 
-static void
-eqn_box_post(struct html *p, const struct eqn_box *bp)
-{
+       if (bp->first)
+               eqn_box(p, bp->first);
 
+       if (NULL != t)
+               print_tagq(p, t);
        if (bp->right)
                print_text(p, bp->right);
-}
 
-static void
-eqn_text(struct html *p, const struct eqn_box *bp)
-{
-
-       if (bp->text)
-               print_text(p, bp->text);
+       if (bp->next)
+               eqn_box(p, bp->next);
 }