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>