]> git.cameronkatri.com Git - mandoc.git/blobdiff - html.c
sync to OpenBSD:
[mandoc.git] / html.c
diff --git a/html.c b/html.c
index 070562fbc667ade652277b5ceec885e5ed23d923..138d3e4c6802140ef31a205096975edfce1f9cee 100644 (file)
--- a/html.c
+++ b/html.c
@@ -1,4 +1,4 @@
-/*     $Id: html.c,v 1.108 2010/07/21 20:35:03 kristaps Exp $ */
+/*     $Id: html.c,v 1.112 2010/09/04 20:18:53 kristaps Exp $ */
 /*
  * Copyright (c) 2008, 2009, 2010 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -116,7 +116,7 @@ ml_alloc(char *outopts, enum htmltype type)
        h = calloc(1, sizeof(struct html));
        if (NULL == h) {
                perror(NULL);
-               exit(EXIT_FAILURE);
+               exit((int)MANDOCLEVEL_SYSERR);
        }
 
        h->type = type;
@@ -398,7 +398,7 @@ print_otag(struct html *h, enum htmltag tag,
                t = malloc(sizeof(struct tag));
                if (NULL == t) {
                        perror(NULL);
-                       exit(EXIT_FAILURE);
+                       exit((int)MANDOCLEVEL_SYSERR);
                }
                t->tag = tag;
                t->next = h->tags.head;
@@ -417,6 +417,11 @@ print_otag(struct html *h, enum htmltag tag,
                                printf("&#160;");
                }
 
+       if ( ! (h->flags & HTML_NONOSPACE))
+               h->flags &= ~HTML_NOSPACE;
+       else
+               h->flags |= HTML_NOSPACE;
+
        /* Print out the tag name and attributes. */
 
        printf("<%s", htmltags[tag].name);
@@ -544,7 +549,8 @@ print_text(struct html *h, const char *word)
 
        assert(word);
        if ( ! print_encode(h, word, 0))
-               h->flags &= ~HTML_NOSPACE;
+               if ( ! (h->flags & HTML_NONOSPACE))
+                       h->flags &= ~HTML_NOSPACE;
 
        /* 
         * Note that we don't process the pipe: the parser sees it as