$OpenBSD: patch-kioslave_man_man2html_cpp,v 1.12 2006/02/03 12:23:15 espie Exp $
--- kioslave/man/man2html.cpp.orig	Thu Jan 19 18:01:00 2006
+++ kioslave/man/man2html.cpp	Tue Jan 24 12:11:35 2006
@@ -2696,6 +2696,7 @@ static const char *section_list[] = {
     "3L", "Lightweight Processes Library",
     "3M", "Mathematical Library",
     "3N", "Network Functions",
+    "3p", "Perl Functions",
     "3R", "RPC Services Library",
     "3S", "Standard I/O Functions",
     "3V", "C Library Functions",
@@ -5466,16 +5467,17 @@ static char *scan_troff_mandoc(char *c, 
         end++;
     }
 
-    if (end > c + 2
+    if (end >= c + 2
         && ispunct(*(end - 1))
 	&& isspace(*(end - 2)) && *(end - 2) != '\n') {
       /* Don't format lonely punctuation E.g. in "xyz ," format
        * the xyz and then append the comma removing the space.
        */
-        *(end - 2) = '\n';
-	ret = scan_troff(c, san, result);
-        *(end - 2) = *(end - 1);
-        *(end - 1) = ' ';
+        *(end - 2) = 0;
+	(void)scan_troff(c, 0, result);
+	ret = end-2;
+	*(end-2)=*(end-1);
+	*(end-1)=' ';
     }
     else {
 	ret = scan_troff(c, san, result);
