From 3211a3293d4f68feb48e68fc3014d6831c1b44e3 Mon Sep 17 00:00:00 2001 From: Kristaps Dzonsons Date: Wed, 28 Oct 2009 08:00:17 +0000 Subject: 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. --- html.c | 46 ++++++++++++++-------------------------------- 1 file changed, 14 insertions(+), 32 deletions(-) (limited to 'html.c') 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 * @@ -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. . */ - 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; + } } -- cgit v1.2.3-56-ge451