$| = 1;
# Settings
-my ($menu) = "../nwww/menu.inc" ;
-my ($header) = "../nwww/header.inc";
-my ($footer) = "../nwww/footer.inc";
-my ($style) = "../nwww/style.inc";
+my ($incdir) = "../nwww";
+
+# Include files
+my ($doctype) = "$incdir/doctype.inc";
+my ($style) = "$incdir/style.inc";
+my ($header) = "$incdir/header.inc";
+my ($footer) = "$incdir/footer.inc";
+my ($menu) = "$incdir/menu.inc" ;
my ($query) = new CGI;
# This prevents malicious users using "../" to view files.
my ($doc) = ($query->param('doc') =~ /^\s*([^\.]*?\.txt)\s*$/);
+# This should be application/xhtml+xml
print "Content-type: text/html\n\n";
unless (defined $doc) {
my($docname) = $doc =~ /\/([^\/]+)$/;
-print <<"END";
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+&print_html($doctype);
-<html>
+print <<"END";
-<head>
- <title>i-scream plain text documentation viewer</title>
+ <head>
+ <title>
+ i-scream plain text documentation viewer
+ </title>
END
&print_html($style);
print <<"END";
-</head>
-<body>
-
-<div id="container">
-
-<div id="main">
+ </head>
+ <body>
+ <div id="container">
+ <div id="main">
END
&print_html($header);
print <<"END";
-<div id="contents">
-<h1 class="top">i-scream documentation viewer</h1>
-<h2>$docname</h2>
+ <div id="contents">
+ <h1 class="top">
+ i-scream documentation viewer
+ </h1>
+ <h2>
+ $docname
+ </h2>
END
&print_file($doc);
-print "</div>";
+
+print <<"END";
+
+ </div>
+END
&print_html($footer);
-print "</div>";
+print <<"END";
+
+ </div>
+END
&print_html($menu);
print <<"END";
-</div>
-</body>
+ </div>
+ </body>
</html>
END
my ($any) = "${ltrs}${gunk}${punc}";
my ($filename) = @_;
if(open(FILE, $filename)) {
- print "<pre>\n";
+ print " <pre>\n";
# Use $_ implicitly throughout.
while (<FILE>) {
# Must do the next line first!
s/\b($urls:[$any]+?)(?=[$punc]*[^$any]|$)/<a href="$1">$1<\/a>/igox;
print;
}
- print "</pre>";
+ print "\n</pre>";
}
else {
print "Failed to open $docname.";