diff options
author | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-10-28 08:00:17 +0000 |
---|---|---|
committer | Kristaps Dzonsons <kristaps@bsd.lv> | 2009-10-28 08:00:17 +0000 |
commit | 3211a3293d4f68feb48e68fc3014d6831c1b44e3 (patch) | |
tree | f6bb6ebeda945d354143c9f47fe7839393a6c792 /html.c | |
parent | cdff20f6d7e19ed09c4c123178ff9c16bdef9aa9 (diff) | |
download | mandoc-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.c | 46 |
1 files changed, 14 insertions, 32 deletions
@@ -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; + } } |