]> git.donarmstrong.com Git - debbugs.git/commitdiff
[project @ 2000-10-06 06:04:41 by ajt]
authorajt <>
Fri, 6 Oct 2000 13:04:41 +0000 (05:04 -0800)
committerajt <>
Fri, 6 Oct 2000 13:04:41 +0000 (05:04 -0800)
Don't use CGI.pm. Use some short code from joeyh instead, and raw html.

cgi/bugreport.cgi
cgi/common.pl
cgi/pkgreport.cgi

index 50fadc2ca72d3fbbafd5773a15edd70622adc8e1..d114b1dff6cd0a88b6a140bd8c9e70f940918436 100755 (executable)
@@ -3,7 +3,6 @@
 package debbugs;
 
 use strict;
-use CGI qw/:standard/;
 use POSIX qw(strftime tzset);
 
 #require '/usr/lib/debbugs/errorlib';
@@ -14,17 +13,40 @@ require '/etc/debbugs/config';
 require '/etc/debbugs/text';
 
 use vars(qw($gHTMLTail $gWebDomain));
+
+sub readparse {
+        # Parse query string. I could use CGI.pm here, but it is 6 thousand
+        # lines long and very expensive. I want light-weight.
+        my ($in, $key, $val, %ret);
+        if (defined $ENV{"QUERY_STRING"} && $ENV{"QUERY_STRING"} ne "") {
+                $in=$ENV{QUERY_STRING};
+        } elsif(defined $ENV{"REQUEST_METHOD"} 
+               && $ENV{"REQUEST_METHOD"} eq "POST") 
+       {
+                read(STDIN,$in,$ENV{CONTENT_LENGTH});
+        } else {
+               return;
+       }
+        foreach (split(/&/,$in)) {
+                s/\+/ /g;
+                ($key, $val) = split(/=/,$_,2);
+                $key=~s/%(..)/pack("c",hex($1))/ge;
+                $val=~s/%(..)/pack("c",hex($1))/ge;
+                $ret{$key}=$val;
+        }
+       return %ret;
+}
+
+my %param = readparse();
+
 my $tail_html;
 
 my %maintainer = getmaintainers();
 
-my $ref= param('bug') || die("No bug number");
-my $archive = (param('archive') || 'no') eq 'yes';
-my $msg = param('msg') || "";
-my $boring = (param('boring') || 'no') eq 'yes'; 
-my $reverse = (param('reverse') || 'no') eq 'yes';
-
-set_option("archive", $archive);
+my $ref = $param{'bug'} || quit("No bug number");
+my $msg = $param{'msg'} || "";
+my $boring = ($param{'boring'} || 'no') eq 'yes'; 
+my $reverse = ($param{'reverse'} || 'no') eq 'yes';
 
 my %status = getbugstatus($ref) or &quit("Couldn't get bug status: $!");
 
@@ -204,22 +226,21 @@ while(my $line = <L>) {
 &quit("$ref state $normstate at end") unless $normstate eq 'kill-end';
 close(L);
 
-print header;
-print start_html(
-       -TEXT => "#000000",
-       -BGCOLOR=>"#FFFFFF",
-       -LINK => "#0000FF",
-       -VLINK => "#800080",
-       -title => "$debbugs::gProject $debbugs::gBug report logs - $short");
+print "Content-Type: text/html\n\n";
 
-print h1("$debbugs::gProject $debbugs::gBug report logs -  $short<br>\n"
-       . htmlsanit($status{subject}));
+print "<HTML><HEAD><TITLE>\n" . 
+    "$debbugs::gProject $debbugs::gBug report logs - $short\n" .
+    "</TITLE></HEAD>\n" .
+    '<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#800080">' .
+    "\n";
+print "<H1>" .  "$debbugs::gProject $debbugs::gBug report logs -  $short" .
+      "<BR>" . htmlsanit($status{subject}) . "</H1>\n";
 
 print "$descriptivehead\n";
-print hr;
+print "<HR>";
 print "$log";
 print $tail_html;
 
-print end_html;
+print "</BODY></HTML>\n";
 
 exit 0;
index 3fe3322a77dbf5c913874e5e2aace54fd28924bf..7ae481f9280ee33959f8bb3bf8739c07856ba1f6 100644 (file)
@@ -11,10 +11,11 @@ sub set_option {
 
 sub quit {
     my $msg = shift;
-    print header . start_html("Error");
+    print "Content-Type: text/html\n\n";
+    print "<HTML><HEAD><TITLE>Error</TITLE></HEAD><BODY>\n";
     print "An error occurred. Dammit.\n";
     print "Error was: $msg.\n";
-    print end_html;
+    print "</BODY></HTML>\n";
     exit 0;
 }
 
@@ -164,7 +165,7 @@ sub htmlizebugs {
                               "forwarded", "forwarded to upstream software authors");
 
     if (@bugs == 0) {
-        return hr . h2("No reports found!");
+        return "<HR><H2>No reports found!</H2></HR>\n";
     }
 
     foreach my $bug (sort {$a<=>$b} @bugs) {
@@ -186,9 +187,11 @@ sub htmlizebugs {
         foreach my $severity(@debbugs::gSeverityList) {
             $severity = $debbugs::gDefaultSeverity if ($severity eq '');
             next unless defined $section{${pending} . "_" . ${severity}};
-            $result .= hr . h2("$debbugs::gSeverityDisplay{$severity} - $displayshowpending{$pending}");
+            $result .= "<HR><H2>$debbugs::gSeverityDisplay{$severity} - $displayshowpending{$pending}</H2>\n";
             $result .= "(A list of <a href=\"http://www.debian.org/Bugs/db/si/$pending$severity\">all such bugs</a> is available).\n";
-            $result .= ul($section{$pending . "_" . $severity});
+            $result .= "<UL>\n";
+           $result .= $section{$pending . "_" . $severity}; 
+           $result .= "</UL>\n";
             $anydone = 1 if ($pending eq "done");
          }
     }
index 479cf4ae7671889be1b5bbde504f930f4626e581..b9c854b161a325f5b70bb77ceb58bb52f4e4eaa5 100755 (executable)
@@ -3,7 +3,6 @@
 package debbugs;
 
 use strict;
-use CGI qw/:standard/;
 use POSIX qw(strftime tzset nice);
 
 require '/debian/home/ajt/newajbug/common.pl';
@@ -15,20 +14,43 @@ require '/etc/debbugs/text';
 
 nice(5);
 
+sub readparse {
+        my ($in, $key, $val, %ret);
+        if (defined $ENV{"QUERY_STRING"} && $ENV{"QUERY_STRING"} ne "") {
+                $in=$ENV{QUERY_STRING};
+        } elsif(defined $ENV{"REQUEST_METHOD"}
+                && $ENV{"REQUEST_METHOD"} eq "POST")
+        {
+                read(STDIN,$in,$ENV{CONTENT_LENGTH});
+        } else {
+                return;
+        }
+        foreach (split(/&/,$in)) {
+                s/\+/ /g;
+                ($key, $val) = split(/=/,$_,2);
+                $key=~s/%(..)/pack("c",hex($1))/ge;
+                $val=~s/%(..)/pack("c",hex($1))/ge;
+                $ret{$key}=$val;
+        }
+        return %ret;
+}
+
+my %param = readparse();
+
 my ($pkg, $maint, $maintenc, $submitter, $severity, $status);
 
-if (defined ($pkg = param('pkg'))) {
-} elsif (defined ($maint = param('maint'))) {
-} elsif (defined ($maintenc = param('maintenc'))) {
-} elsif (defined ($submitter= param('submitter'))) { 
-} elsif (defined ($severity = param('severity'))) { 
-       $status = param('status') || 'open';
+if (defined ($pkg = $param{'pkg'})) {
+} elsif (defined ($maint = $param{'maint'})) {
+} elsif (defined ($maintenc = $param{'maintenc'})) {
+} elsif (defined ($submitter= $param{'submitter'})) { 
+} elsif (defined ($severity = $param{'severity'})) { 
+       $status = $param{'status'} || 'open';
 } else {
-       $pkg = "ALL";
+       quit("You have to choose something to select by");
 }
 
-my $repeatmerged = (param('repeatmerged') || "yes") eq "yes";
-my $archive = (param('archive') || "no") eq "yes";
+my $repeatmerged = ($param{'repeatmerged'} || "yes") eq "yes";
+my $archive = ($param{'archive'} || "no") eq "yes";
 
 my $Archived = $archive ? "Archived" : "";
 
@@ -77,15 +99,15 @@ if (defined $pkg) {
 
 my $result = htmlizebugs(@bugs);
 
-print header;
-print start_html(
-        -TEXT => "#000000",
-        -BGCOLOR=>"#FFFFFF",
-        -LINK => "#0000FF",
-        -VLINK => "#800080",
-        -title => "$debbugs::gProject $Archived $debbugs::gBug report logs: $tag");
+print "Content-Type: text/html\n\n";
 
-print h1("$debbugs::gProject $Archived $debbugs::gBug report logs: $tag");
+print "<HTML><HEAD><TITLE>\n" . 
+    "$debbugs::gProject $Archived $debbugs::gBug report logs: $tag\n" .
+    "</TITLE></HEAD>\n" .
+    '<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000FF" VLINK="#800080">' .
+    "\n";
+print "<H1>" . "$debbugs::gProject $Archived $debbugs::gBug report logs: $tag" .
+      "</H1>\n";
 
 if (defined $pkg) {
     if (defined $maintainer{$pkg}) {
@@ -109,7 +131,7 @@ if (defined $pkg) {
 
 print $result;
 
-print hr;
+print "<hr>\n";
 print "$tail_html";
 
-print end_html;
+print "</body></html>\n";