]> git.cameronkatri.com Git - mandoc.git/blobdiff - demandoc.c
One of the WARNING messages has to use the word "section" twice in two
[mandoc.git] / demandoc.c
index 76548de0e59d1b53728148a8d66d3441ec5f19b4..aad42085b185b7ab274f4c88dd9fd46846674c3a 100644 (file)
@@ -1,4 +1,4 @@
-/*     $Id: demandoc.c,v 1.5 2011/09/01 22:09:50 kristaps Exp $ */
+/*     $Id: demandoc.c,v 1.7 2012/05/31 22:27:14 schwarze Exp $ */
 /*
  * Copyright (c) 2011 Kristaps Dzonsons <kristaps@bsd.lv>
  *
@@ -76,7 +76,7 @@ main(int argc, char *argv[])
        argc -= optind;
        argv += optind;
 
-       mp = mparse_alloc(MPARSE_AUTO, MANDOCLEVEL_FATAL, NULL, NULL);
+       mp = mparse_alloc(MPARSE_AUTO, MANDOCLEVEL_FATAL, NULL, NULL, NULL);
        assert(mp);
 
        if (0 == argc)
@@ -132,7 +132,7 @@ static void
 pstring(const char *p, int col, int *colp, int list)
 {
        enum mandoc_esc  esc;
-       const char      *start;
+       const char      *start, *end;
        int              emit;
 
        /*
@@ -161,8 +161,20 @@ again:
                        } else if (isspace((unsigned char)*p))
                                break;
 
-               if (emit && p - start >= 2) {
-                       for ( ; start != p; start++)
+               end = p - 1;
+
+               while (end > start)
+                       if ('.' == *end || ',' == *end || 
+                                       '\'' == *end || '"' == *end ||
+                                       ')' == *end || '!' == *end ||
+                                       '?' == *end || ':' == *end ||
+                                       ';' == *end)
+                               end--;
+                       else
+                               break;
+
+               if (emit && end - start >= 1) {
+                       for ( ; start <= end; start++)
                                if (ASCII_HYPH == *start)
                                        putchar('-');
                                else