unused global
[freeside.git] / FS / FS / CGI.pm
index d1c56a2..28b3a06 100644 (file)
@@ -1,16 +1,16 @@
 package FS::CGI;
 
 use strict;
-use vars qw(@EXPORT_OK @ISA @header);
+use vars qw(@EXPORT_OK @ISA);
 use Exporter;
 use CGI;
 use URI::URL;
-use CGI::Carp qw(fatalsToBrowser);
+#use CGI::Carp qw(fatalsToBrowser);
 use FS::UID;
 
 @ISA = qw(Exporter);
 @EXPORT_OK = qw(header menubar idiot eidiot popurl table itable ntable
-                small_custview);
+                small_custview myexit);
 
 =head1 NAME
 
@@ -45,7 +45,7 @@ Returns an HTML header.
 
 sub header {
   my($title,$menubar,$etc)=@_; #$etc is for things like onLoad= etc.
-  use Carp;
+  #use Carp;
   $etc = '' unless defined $etc;
 
   my $x =  <<END;
@@ -131,13 +131,38 @@ Sends an HTML error message, then exits.
 
 sub eidiot {
   warn "eidiot depriciated";
+  $HTML::Mason::Commands::r->send_http_header
+    if defined $HTML::Mason::Commands::r;
   idiot(@_);
+  &myexit();
+}
+
+=item myexit
+
+You probably shouldn't use this; but if you must:
+
+If running under mod_perl, calles Apache::exit, otherwise, calls exit.
+
+=cut
+
+sub myexit {
   if (exists $ENV{MOD_PERL}) {
-    $main::Response->End()
-      if defined $main::Response
-         && $main::Response->isa('Apache::ASP::Response');
-    require Apache;
-    Apache::exit();
+
+    if ( defined $main::Response
+         && $main::Response->isa('Apache::ASP::Response') ) {  #Apache::ASP
+      $main::Response->End();
+      require Apache;
+      Apache::exit();
+    } elsif ( defined $HTML::Mason::Commands::m  ) { #Mason
+      #$HTML::Mason::Commands::m->flush_buffer();
+      $HTML::Mason::Commands::m->abort();
+      die "shouldn't fall through to here (mason \$m->abort didn't)";
+    } else {
+      #??? well, it is $ENV{MOD_PERL}
+      warn "running under unknown mod_perl environment; trying Apache::exit()";
+      require Apache;
+      Apache::exit();
+    }
   } else {
     exit;
   }