1#!/usr/bin/env perl 2#*************************************************************************** 3# _ _ ____ _ 4# Project ___| | | | _ \| | 5# / __| | | | |_) | | 6# | (__| |_| | _ <| |___ 7# \___|\___/|_| \_\_____| 8# 9# Copyright (C) 2019, Daniel Stenberg, <daniel@haxx.se>, et al. 10# 11# This software is licensed as described in the file COPYING, which 12# you should have received as part of this distribution. The terms 13# are also available at https://curl.haxx.se/docs/copyright.html. 14# 15# You may opt to use, copy, modify, merge, publish, distribute and/or sell 16# copies of the Software, and permit persons to whom the Software is 17# furnished to do so, under the terms of the COPYING file. 18# 19# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 20# KIND, either express or implied. 21# 22########################################################################### 23# 24# Scan man page(s) and detect some simple and yet common formatting mistakes. 25# 26# Output all deviances to stderr. 27 28use strict; 29use warnings; 30 31# we may get the dir roots pointed out 32my @manpages=@ARGV; 33my $errors = 0; 34 35sub scanmanpage { 36 my ($file) = @_; 37 38 print "Check $file\n"; 39 open(M, "<$file") || die "no such file: $file"; 40 my $line = 1; 41 while(<M>) { 42 if($_ =~ /^\'/) { 43 print STDERR "$file:$line line starts with single quote!\n"; 44 $errors++; 45 } 46 if($_ =~ /\\f([BI])(.*)/) { 47 my ($format, $rest) = ($1, $2); 48 if($rest !~ /\\fP/) { 49 print STDERR "$file:$line missing \\f${format} terminator!\n"; 50 $errors++; 51 } 52 } 53 $line++; 54 } 55 close(M); 56} 57 58 59for my $m (@manpages) { 60 scanmanpage($m); 61} 62 63exit $errors; 64