summaryrefslogtreecommitdiff
path: root/CheckMan
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2011-01-11 16:49:55 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2011-01-11 16:49:55 +0000
commit85b2727ef6978843ae52322311400d63b45bb746 (patch)
treef37020e09b7fbb3fc0dbe865e51363c72fcc682f /CheckMan
parent13b67a95be369b706f2b986b4ac5e3b04400f81c (diff)
downloadpcre-85b2727ef6978843ae52322311400d63b45bb746.tar.gz
Add script to check for man page markup typos. Fix some typos.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@583 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'CheckMan')
-rwxr-xr-xCheckMan67
1 files changed, 67 insertions, 0 deletions
diff --git a/CheckMan b/CheckMan
new file mode 100755
index 0000000..de01334
--- /dev/null
+++ b/CheckMan
@@ -0,0 +1,67 @@
+#! /usr/bin/perl
+
+# A script to scan PCRE's man pages to check for typos in the control
+# sequences. I use only a small set of the available repertoire, so it is
+# straightforward to check that nothing else has slipped in by mistake. This
+# script should be called in the doc directory.
+
+$yield = 0;
+
+while (scalar(@ARGV) > 0)
+ {
+ $line = 0;
+ $file = shift @ARGV;
+
+ open (IN, $file) || die "Failed to open $file\n";
+
+ while (<IN>)
+ {
+ $line++;
+ if (/^\s*$/)
+ {
+ printf "Empty line $line of $file\n";
+ $yield = 1;
+ }
+ elsif (/^\./)
+ {
+ if (!/^\.\s*$|
+ ^\.B\s+\S|
+ ^\.TH\s\S|
+ ^\.SH\s\S|
+ ^\.SS\s\S|
+ ^\.TP(?:\s\d+)?\s*$|
+ ^\.ti\s\S|
+ ^\.SM\s*$|
+ ^\.rs\s*$|
+ ^\.sp\s*$|
+ ^\.nf\s*$|
+ ^\.fi\s*$|
+ ^\.P\s*$|
+ ^\.PP\s*$|
+ ^\.\\"(?:\ HREF)?\s*$|
+ ^\.\\"\sHTML\s<a\shref="[^"]+?">\s*$|
+ ^\.\\"\sHTML\s<a\sname="[^"]+?"><\/a>\s*$|
+ ^\.\\"\s<\/a>\s*$|
+ ^\.\\"\sJOINSH\s*$|
+ ^\.\\"\sJOIN\s*$/x
+ )
+ {
+ printf "Bad control line $line of $file\n";
+ $yield = 1;
+ }
+ }
+ else
+ {
+ if (/\\[^ef]|\\f[^IBP]/)
+ {
+ printf "Bad backslash in line $line of $file\n";
+ $yield = 1;
+ }
+ }
+ }
+
+ close(IN);
+ }
+
+exit $yield;
+# End