use CGI;
+our @compile = qw[
+ delete
+ http
+ new_MultipartBuffer
+ param
+ parse_keywordlist
+ read_from_client
+ read_multipart
+ tmpFileName
+ uploadInfo
+ url_param
+ user_agent
+];
+
+CGI->compile(@compile);
+
__PACKAGE__->mk_accessors('cgi');
=head1 NAME
=head1 DESCRIPTION
This is the Catalyst engine specialized for the CGI environment (using the
-C<CGI> and C<CGI::Cookie> modules). Normally Catalyst will select the
-appropriate engine according to the environment that it detects, however you
-can force Catalyst to use the CGI engine by specifying the following in your
-application module:
-
- use Catalyst qw(-Engine=CGI);
-
-The performance of this way of using Catalyst is not expected to be
-useful in production applications, but it may be helpful for development.
+C<CGI> and C<CGI::Cookie> modules).
=head1 METHODS
=cut
sub prepare_request {
- my ( $c, $cgi ) = @_;
+ my ( $c, $object ) = @_;
+
+ my $cgi;
+
+ if ( defined($object) && ref($object) ) {
+
+ if ( $object->isa('Apache') ) { # MP 1.3
+ $cgi = CGI->new($object);
+ }
+
+ elsif ( $object->isa('Apache::RequestRec') ) { # MP 1.99
+ $cgi = CGI->new($object);
+ }
+
+ elsif ( $object->isa('Apache2::RequestRec') ) { # MP 2.00
+ $cgi = CGI->new($object);
+ }
+
+ elsif ( $object->isa('CGI') ) {
+ $cgi = $object;
+ }
+
+ else {
+ my $class = ref($object);
+ die( qq/Invalid argument $object/ );
+ }
+ }
+
$c->cgi( $cgi || CGI->new );
- $c->cgi->_reset_globals;
}
=item $c->prepare_uploads