summaryrefslogtreecommitdiffstats
path: root/misc/docs_errors.pl
diff options
context:
space:
mode:
Diffstat (limited to 'misc/docs_errors.pl')
-rwxr-xr-xmisc/docs_errors.pl183
1 files changed, 94 insertions, 89 deletions
diff --git a/misc/docs_errors.pl b/misc/docs_errors.pl
index 28ae8e4..b6774c7 100755
--- a/misc/docs_errors.pl
+++ b/misc/docs_errors.pl
@@ -2,143 +2,148 @@
##
## Generates HTML documentation of error messages and explanations
## for W3C Markup Validation Service
-## $Id: docs_errors.pl,v 1.11 2009-06-29 14:37:08 ville Exp $
+## $Id: docs_errors.pl,v 1.12 2009-11-23 22:15:18 ville Exp $
## Pragmas.
use strict;
use warnings;
-
## Modules. See also the BEGIN block further down below.
use File::Spec::Functions qw(catfile);
-use HTML::Template 2.6 qw();
-use Config::General 2.32 qw(); # Need 2.32 for <msg 0>, rt.cpan.org#17852
+use HTML::Template 2.6 qw();
+use Config::General 2.32 qw(); # Need 2.32 for <msg 0>, rt.cpan.org#17852
use vars qw($DEBUG $CFG $VERSION);
+
# Define global constants
use constant TRUE => 1;
use constant FALSE => 0;
BEGIN {
- # Launder data for -T; -AutoLaunder doesn't catch this one.
- if (exists $ENV{W3C_VALIDATOR_HOME}) {
- $ENV{W3C_VALIDATOR_HOME} =~ /^(.*)$/;
- $ENV{W3C_VALIDATOR_HOME} = $1;
- }
-
- #
- # Read Config Files.
- eval {
- my %config_opts = (
- -ConfigFile => ($ENV{W3C_VALIDATOR_CFG} || '/etc/w3c/validator.conf'),
- -MergeDuplicateOptions => TRUE,
- -MergeDuplicateBlocks => TRUE,
- -SplitPolicy => 'equalsign',
- -UseApacheInclude => TRUE,
- -IncludeRelative => TRUE,
- -InterPolateVars => TRUE,
- -AutoLaunder => TRUE,
- -AutoTrue => TRUE,
- -DefaultConfig => {
- Paths => {
- Base => ($ENV{W3C_VALIDATOR_HOME} || '/usr/local/validator'),
- },
- },
- );
- my %cfg = Config::General->new(%config_opts)->getall();
- $CFG = \%cfg;
- };
- if ($@) {
- die <<".EOF.";
+
+ # Launder data for -T; -AutoLaunder doesn't catch this one.
+ if (exists $ENV{W3C_VALIDATOR_HOME}) {
+ $ENV{W3C_VALIDATOR_HOME} =~ /^(.*)$/;
+ $ENV{W3C_VALIDATOR_HOME} = $1;
+ }
+
+ #
+ # Read Config Files.
+ eval {
+ my %config_opts = (
+ -ConfigFile =>
+ ($ENV{W3C_VALIDATOR_CFG} || '/etc/w3c/validator.conf'),
+ -MergeDuplicateOptions => TRUE,
+ -MergeDuplicateBlocks => TRUE,
+ -SplitPolicy => 'equalsign',
+ -UseApacheInclude => TRUE,
+ -IncludeRelative => TRUE,
+ -InterPolateVars => TRUE,
+ -AutoLaunder => TRUE,
+ -AutoTrue => TRUE,
+ -DefaultConfig => {
+ Paths => {
+ Base =>
+ ($ENV{W3C_VALIDATOR_HOME} || '/usr/local/validator'),
+ },
+ },
+ );
+ my %cfg = Config::General->new(%config_opts)->getall();
+ $CFG = \%cfg;
+ };
+ if ($@) {
+ die <<".EOF.";
Could not read configuration. Set the W3C_VALIDATOR_CFG environment variable
or copy conf/* to /etc/w3c/. Make sure that the configuration file and all
included files are readable by the web server user. The error was:\n'$@'
.EOF.
- }
-} # end of BEGIN block.
+ }
+} # end of BEGIN block.
#
# Get rid of (possibly insecure) $PATH.
delete $ENV{PATH};
-our $lang = 'en_US'; # @@@ TODO: conneg
+our $lang = 'en_US'; # @@@ TODO: conneg
# Read error message + explanations file
-our $error_messages_file = catfile($CFG->{Paths}->{Templates}, $lang, 'error_messages.cfg');
-our %config_errs = ( -MergeDuplicateBlocks => 1,
- -ConfigFile => $error_messages_file);
+our $error_messages_file =
+ catfile($CFG->{Paths}->{Templates}, $lang, 'error_messages.cfg');
+our %config_errs = (
+ -MergeDuplicateBlocks => 1,
+ -ConfigFile => $error_messages_file
+);
our %rsrc = Config::General->new(%config_errs)->getall();
-
our $T = HTML::Template->new(
- filename => catfile($CFG->{Paths}->{Templates}, $lang, 'docs_errors.tmpl'),
- die_on_bad_params => FALSE,
+ filename => catfile($CFG->{Paths}->{Templates}, $lang, 'docs_errors.tmpl'),
+ die_on_bad_params => FALSE,
);
$T->param(list_errors_hasverbose => &list_errors_hasverbose(\%rsrc));
-$T->param(list_errors_noverbose => &list_errors_noverbose(\%rsrc));
+$T->param(list_errors_noverbose => &list_errors_noverbose(\%rsrc));
print $T->output;
-sub list_errors_hasverbose{
- my $rsrc = shift;
+sub list_errors_hasverbose
+{
+ my $rsrc = shift;
my $errors = [];
my $error_id;
- my $max_error_id=500; # where to stop
- for ($error_id=0;$error_id<$max_error_id;$error_id++)
- {
- my %single_error;
- if ($rsrc->{msg}->{$error_id})
- {
- my $verbose = $rsrc->{msg}->{$error_id}->{verbose};
- if ($verbose)
- {
- my $original = $rsrc->{msg}->{$error_id}->{original};
- $original = &de_template_explanation($original);
- $single_error{original} = $original;
- $single_error{id} = $error_id;
- $single_error{verbose} = $rsrc->{msg}->{$error_id}->{verbose};
- $single_error{verbose} =~ s/<!--CFG_HOME_PAGE-->/$CFG->{'Home Page'}/g;
-
- push @{$errors}, \%single_error;
+ my $max_error_id = 500; # where to stop
+ for ($error_id = 0; $error_id < $max_error_id; $error_id++) {
+ my %single_error;
+ if ($rsrc->{msg}->{$error_id}) {
+ my $verbose = $rsrc->{msg}->{$error_id}->{verbose};
+ if ($verbose) {
+ my $original = $rsrc->{msg}->{$error_id}->{original};
+ $original = &de_template_explanation($original);
+ $single_error{original} = $original;
+ $single_error{id} = $error_id;
+ $single_error{verbose} = $rsrc->{msg}->{$error_id}->{verbose};
+ $single_error{verbose} =~
+ s/<!--CFG_HOME_PAGE-->/$CFG->{'Home Page'}/g;
+
+ push @{$errors}, \%single_error;
+
# Fix up relative paths (/check vs /docs/errors.html)
s/href="docs\//href="/
for $single_error{original}, $single_error{verbose};
- }
+ }
- }
+ }
}
- return $errors;
+ return $errors;
}
-sub list_errors_noverbose{
- my $rsrc = shift;
+sub list_errors_noverbose
+{
+ my $rsrc = shift;
my $errors = [];
my $error_id;
- my $max_error_id=500; # where to stop
- for ($error_id=0;$error_id<$max_error_id;$error_id++)
- {
- my %single_error;
- if ($rsrc->{msg}->{$error_id})
- {
- my $verbose = $rsrc->{msg}->{$error_id}->{verbose};
- if (! $verbose)
- {
- my $original = $rsrc->{msg}->{$error_id}->{original};
- $original = &de_template_explanation($original);
- $single_error{original} = $original;
- $single_error{id} = $error_id;
- $single_error{verbose} = $rsrc->{msg}->{$error_id}->{verbose};
- push @{$errors}, \%single_error;
- }
-
- }
+ my $max_error_id = 500; # where to stop
+ for ($error_id = 0; $error_id < $max_error_id; $error_id++) {
+ my %single_error;
+ if ($rsrc->{msg}->{$error_id}) {
+ my $verbose = $rsrc->{msg}->{$error_id}->{verbose};
+ if (!$verbose) {
+ my $original = $rsrc->{msg}->{$error_id}->{original};
+ $original = &de_template_explanation($original);
+ $single_error{original} = $original;
+ $single_error{id} = $error_id;
+ $single_error{verbose} = $rsrc->{msg}->{$error_id}->{verbose};
+ push @{$errors}, \%single_error;
+ }
+
+ }
}
- return $errors;
+ return $errors;
}
-sub de_template_explanation {
-# takes the error message template, and replace "template keywords" with real life keywords
+sub de_template_explanation
+{
+
+ # takes the error message template, and replace "template keywords" with real life keywords
my $explanation = shift;
if ($explanation) {
$explanation =~ s/\%1/X/;