aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/html.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2010-05-25 12:37:20 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2010-05-25 12:37:20 +0000
commit5909cbca3fe375aeac1e2247b3f8edbaba32e56e (patch)
tree22379e2aa842475f26d517eadfe52749991a4340 /html.c
parent2aefdbffeeeeda1b600266dae034d7133292ad46 (diff)
downloadmandoc-5909cbca3fe375aeac1e2247b3f8edbaba32e56e.tar.gz
mandoc-5909cbca3fe375aeac1e2247b3f8edbaba32e56e.tar.zst
mandoc-5909cbca3fe375aeac1e2247b3f8edbaba32e56e.zip
Modified version of Ingo Schwarze's patch for hyphen-breaking.
Breakable hyphens are cued in the back-ends (with ASCII_HYPH) and acted upon in term.c or ignored in html.c. Also cleaned up XML decl printing (no need for extra vars).
Diffstat (limited to 'html.c')
-rw-r--r--html.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/html.c b/html.c
index 0ad84e4f..d05e4b1d 100644
--- a/html.c
+++ b/html.c
@@ -1,4 +1,4 @@
-/* $Id: html.c,v 1.99 2010/04/12 19:45:39 kristaps Exp $ */
+/* $Id: html.c,v 1.100 2010/05/25 12:37:20 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -29,6 +29,7 @@
#include <string.h>
#include <unistd.h>
+#include "mandoc.h"
#include "out.h"
#include "chars.h"
#include "html.h"
@@ -296,11 +297,12 @@ print_encode(struct html *h, const char *p, int norecurse)
int len, nospace;
const char *seq;
enum roffdeco deco;
+ static const char rejs[6] = { '\\', '<', '>', '&', ASCII_HYPH, '\0' };
nospace = 0;
for (; *p; p++) {
- sz = strcspn(p, "\\<>&");
+ sz = strcspn(p, rejs);
fwrite(p, 1, sz, stdout);
p += /* LINTED */
@@ -315,6 +317,15 @@ print_encode(struct html *h, const char *p, int norecurse)
} else if ('&' == *p) {
printf("&amp;");
continue;
+ } else if (ASCII_HYPH == *p) {
+ /*
+ * Note: "soft hyphens" aren't graphically
+ * displayed when not breaking the text; we want
+ * them to be displayed.
+ */
+ /*printf("&#173;");*/
+ putchar('-');
+ continue;
} else if ('\0' == *p)
break;
@@ -443,21 +454,9 @@ print_gen_decls(struct html *h)
static void
print_xmltype(struct html *h)
{
- const char *decl;
-
- switch (h->type) {
- case (HTML_XHTML_1_0_STRICT):
- decl = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
- break;
- default:
- decl = NULL;
- break;
- }
-
- if (NULL == decl)
- return;
- printf("%s\n", decl);
+ if (HTML_XHTML_1_0_STRICT == h->type)
+ printf("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
}