'howcarry' => 'equipmnt',
'howmuch' => 'equipmnt',
'howuse' => 'equipmnt',
+ 'backpack' => 'equipmnt',
+ 'ammpouch' => 'equipmnt',
+ 'medikit' => 'equipmnt',
+ 'canteen' => 'equipmnt',
+ 'weapons' => 'weapons',
+ 'close' => 'weapons',
+ 'missile' => 'weapons',
'cmbtrulz' => 'cmbtrulz',
'evasion' => 'cmbtrulz',
'lorecrcl' => 'lorecrcl',
shift @ARGV;
$language = shift @ARGV;
}
+ elsif( $ARGV[ 0 ] eq '-h' ) {
+ usage();
+ exit 0;
+ }
}
my $lineNumber = 1;
-my $currentSection = "_unknown";
+my $currentSection = '';
while( my $line = <> ) {
my @section = ( $line =~ /<section[^>]+id="([^"]*)"/g );
else {
$currentSection = $sectionDocLookup{$section[ 0 ]};
}
+ $currentSection = '_unknown' unless defined $currentSection;
}
if( $skipLines >= $lineNumber ) {
# ellipsis
if( $line =~ /(\.\s*\.(\s*\.)?)/ ) { &printError( "ne", $currentSection, $lineNumber, "possible malformed ellipsis", "$1", "<ch.ellips/> or <ch.lellips/>" ); }
- if( $line =~ m{([[:space:]]<ch\.ellips/>)} || $line =~ m{(<ch\.ellips/>[[:space:]])} ) { &printError( "ne", $currentSection, $lineNumber, "<ch.ellips/> with extraneous surrounding space", "$1", "<ch.ellips/>" ); }
+ if( $line =~ m{([[:space:]]<ch\.ellips/>)}) { &printError( "ne", $currentSection, $lineNumber, "<ch.ellips/> with extraneous surrounding space", "$1", "<ch.ellips/>" ); }
if( $line =~ m{([^>])(<ch\.lellips/>)} ) { &printError( "ne", $currentSection, $lineNumber, "possible <ch.lellips/> used in place of <ch.ellips/>", "$1$2", "$1<ch.ellips/>" ); }
if( $line =~ m{(><ch\.ellips/>)} ) { &printError( "ne", $currentSection, $lineNumber, "possible <ch.ellips/> used in place of <ch.lellips/>", "$1", "><ch.lellips/>" ); }
$1 ne "COMBAT" &&
$1 ne "WILLPOWER" &&
$1 ne "HAVOC" &&
+ $1 ne "TARGET" &&
+ $1 ne "RESISTANCE" &&
$1 ne "CLOSE") ||
($language eq 'es' &&
$1 ne 'DESTREZA' &&
++$errorCount;
if( $maxErrorCount > 0 && $errorCount > $maxErrorCount ) { die "Maximum number of errors ($maxErrorCount) exceeded. Quitting.\n"; }
}
+
+sub usage {
+ print "Gamebook lintian checker - reads from standard input a gamebook XML file and prints out possible errors\n\n";
+ print "Usage: gblint.pl [-e <NUMBER>] [-s <NUMBER>] [-i <TEXT>] [--use-corr] [--skip-ASCII-check] [--language CODE]\n";
+ print "Options:\n";
+ print "\t-e <NUMBER>\tStops when NUMBER errors have been reached (by default it does not stop)\n";
+ print "\t-s <NUMBER>\tSkips NUMBER of lines before analysing\n";
+ print "\t-i <TEXT>\tAdds TEXT to error messages (default: '??')\n";
+ print "\t--use-corr\tPrints correction in report (default: disabled)\n";
+ print "\t--skip-ASCII-check\tDoes not check for non-ASCCI characters (default: enabled)\n";
+ print "\t--language CODE\tDefines the language of the gamebook file (default: 'en'\n";
+ print "\t-h\tPrint this help and exit\n";
+}