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