summaryrefslogtreecommitdiffstatshomepage
path: root/html.c
diff options
context:
space:
mode:
authorKristaps Dzonsons <kristaps@bsd.lv>2009-10-28 08:00:17 +0000
committerKristaps Dzonsons <kristaps@bsd.lv>2009-10-28 08:00:17 +0000
commit3211a3293d4f68feb48e68fc3014d6831c1b44e3 (patch)
treef6bb6ebeda945d354143c9f47fe7839393a6c792 /html.c
parentcdff20f6d7e19ed09c4c123178ff9c16bdef9aa9 (diff)
downloadmandoc-3211a3293d4f68feb48e68fc3014d6831c1b44e3.tar.gz
mandoc-3211a3293d4f68feb48e68fc3014d6831c1b44e3.tar.zst
mandoc-3211a3293d4f68feb48e68fc3014d6831c1b44e3.zip
Fixed `sp', `br', `Pp', etc. so as not to have an empty div (-Thtml, -man, -mdoc).
Made html_idcat be completely correct (messy standard) (-Thtml). Fixed warnings about -ohang and -item lists (-Thtml, -mdoc). Fixed typo in index.sgml.
Diffstat (limited to 'html.c')
-rw-r--r--html.c46
1 files changed, 14 insertions, 32 deletions
diff --git a/html.c b/html.c
index 5fbf7006..c14d97d5 100644
--- a/html.c
+++ b/html.c
@@ -1,4 +1,4 @@
-/* $Id: html.c,v 1.69 2009/10/28 06:54:12 kristaps Exp $ */
+/* $Id: html.c,v 1.70 2009/10/28 08:00:18 kristaps Exp $ */
/*
* Copyright (c) 2008, 2009 Kristaps Dzonsons <kristaps@kth.se>
*
@@ -651,46 +651,28 @@ bufcat_su(struct html *h, const char *p, const struct roffsu *su)
void
-html_idcpy(char *dst, const char *src, int sz)
+html_idcat(char *dst, const char *src, int sz)
{
+ int ssz;
assert(sz);
- dst[0] = '\0';
- html_idcat(dst, src, sz);
-}
-
-
-void
-html_idcat(char *dst, const char *src, int sz)
-{
- int i;
/* Cf. <http://www.w3.org/TR/html4/types.html#h-6.2>. */
- for (i = 0; *dst != '\0' && i < sz - 1; dst++, i++)
+ for ( ; *dst != '\0' && sz; dst++, sz--)
/* Jump to end. */ ;
- for ( ; *src != '\0' && i < sz - 1; src++, i++, dst++) {
- if (isalnum((u_char)*src)) {
- *dst = *src;
- continue;
- }
+ assert(sz > 2);
- switch (*src) {
- case (';'):
- *dst = ';';
- break;
- case ('-'):
- *dst = '-';
- break;
- case (':'):
- *dst = ':';
- break;
- default:
- *dst = '_';
- break;
- }
- }
+ /* We can't start with a number (bah). */
+ *dst++ = 'x';
*dst = '\0';
+ sz--;
+
+ for ( ; *src != '\0' && sz > 1; src++) {
+ ssz = snprintf(dst, sz, "%.2x", *src);
+ sz -= ssz;
+ dst += ssz;
+ }
}