Annotation of embedaddon/pcre/CheckMan, revision 1.1.1.2

1.1       misho       1: #! /usr/bin/perl
                      2: 
                      3: # A script to scan PCRE's man pages to check for typos in the control
                      4: # sequences. I use only a small set of the available repertoire, so it is 
                      5: # straightforward to check that nothing else has slipped in by mistake. This
                      6: # script should be called in the doc directory.
                      7: 
                      8: $yield = 0;
                      9: 
                     10: while (scalar(@ARGV) > 0)
                     11:   {
                     12:   $line = 0; 
                     13:   $file = shift @ARGV;
                     14:     
                     15:   open (IN, $file) || die "Failed to open $file\n";
                     16:   
                     17:   while (<IN>)
                     18:     {  
                     19:     $line++; 
                     20:     if (/^\s*$/)
                     21:       {
                     22:       printf "Empty line $line of $file\n";
                     23:       $yield = 1;  
                     24:       }   
                     25:     elsif (/^\./)
                     26:       {
                     27:       if (!/^\.\s*$|
                     28:             ^\.B\s+\S| 
                     29:             ^\.TH\s\S|
                     30:             ^\.SH\s\S|
                     31:             ^\.SS\s\S|
1.1.1.2 ! misho      32:             ^\.TP(?:\s?\d+)?\s*$|
1.1       misho      33:             ^\.SM\s*$|
1.1.1.2 ! misho      34:             ^\.br\s*$| 
1.1       misho      35:             ^\.rs\s*$| 
                     36:             ^\.sp\s*$| 
                     37:             ^\.nf\s*$| 
                     38:             ^\.fi\s*$| 
                     39:             ^\.P\s*$| 
                     40:             ^\.PP\s*$| 
                     41:             ^\.\\"(?:\ HREF)?\s*$|
                     42:             ^\.\\"\sHTML\s<a\shref="[^"]+?">\s*$|
                     43:             ^\.\\"\sHTML\s<a\sname="[^"]+?"><\/a>\s*$|
                     44:             ^\.\\"\s<\/a>\s*$|
                     45:             ^\.\\"\sJOINSH\s*$|
                     46:             ^\.\\"\sJOIN\s*$/x  
                     47:          )
                     48:         {
                     49:         printf "Bad control line $line of $file\n";
                     50:         $yield = 1;
                     51:         }
                     52:       }
                     53:     else
                     54:       {
                     55:       if (/\\[^ef]|\\f[^IBP]/)
                     56:         {
                     57:         printf "Bad backslash in line $line of $file\n";  
                     58:         $yield = 1; 
                     59:         } 
                     60:       }   
                     61:     }
                     62:      
                     63:   close(IN);   
                     64:   }
                     65:   
                     66: exit $yield;
                     67: # End  

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>