diff options
author | Steve Peters <steve@fisharerojo.org> | 2006-10-03 15:36:55 +0000 |
---|---|---|
committer | Steve Peters <steve@fisharerojo.org> | 2006-10-03 15:36:55 +0000 |
commit | 0664a57d8d8db765643a0ef6294bbbd013a00df5 (patch) | |
tree | d270f79b5283f89319801930be444ac9b756b728 /lib | |
parent | 2db40e90730d5fd105e3f74faa4d22f352568b99 (diff) | |
download | perl-0664a57d8d8db765643a0ef6294bbbd013a00df5.tar.gz |
Upgrade to CGI.pm-3.25
p4raw-id: //depot/perl@28930
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CGI.pm | 46 | ||||
-rw-r--r-- | lib/CGI/Changes | 14 | ||||
-rw-r--r-- | lib/CGI/Util.pm | 2 |
3 files changed, 44 insertions, 18 deletions
diff --git a/lib/CGI.pm b/lib/CGI.pm index ffb8ce91dc..440ef5a8f5 100644 --- a/lib/CGI.pm +++ b/lib/CGI.pm @@ -18,8 +18,8 @@ use Carp 'croak'; # The most recent version and complete docs are available at: # http://stein.cshl.org/WWW/software/CGI/ -$CGI::revision = '$Id: CGI.pm,v 1.208 2006/04/23 14:25:14 lstein Exp $'; -$CGI::VERSION='3.22'; +$CGI::revision = '$Id: CGI.pm,v 1.221 2006/09/28 17:04:10 lstein Exp $'; +$CGI::VERSION='3.25'; # HARD-CODED LOCATION FOR FILE UPLOAD TEMPORARY FILES. # UNCOMMENT THIS ONLY IF YOU KNOW WHAT YOU'RE DOING. @@ -1653,6 +1653,7 @@ sub _style { my ($self,$style) = @_; my (@result); my $type = 'text/css'; + my $rel = 'stylesheet'; my $cdata_start = $XHTML ? "\n<!--/* <![CDATA[ */" : "\n<!-- "; my $cdata_end = $XHTML ? "\n/* ]]> */-->\n" : " -->\n"; @@ -1661,25 +1662,26 @@ sub _style { for my $s (@s) { if (ref($s)) { - my($src,$code,$verbatim,$stype,$foo,@other) = - rearrange([qw(SRC CODE VERBATIM TYPE FOO)], + my($src,$code,$verbatim,$stype,$alternate,$foo,@other) = + rearrange([qw(SRC CODE VERBATIM TYPE ALTERNATE FOO)], ('-foo'=>'bar', ref($s) eq 'ARRAY' ? @$s : %$s)); $type = $stype if $stype; + $rel = 'alternate stylesheet' if $alternate; my $other = @other ? join ' ',@other : ''; if (ref($src) eq "ARRAY") # Check to see if the $src variable is an array reference { # If it is, push a LINK tag for each one foreach $src (@$src) { - push(@result,$XHTML ? qq(<link rel="stylesheet" type="$type" href="$src" $other/>) - : qq(<link rel="stylesheet" type="$type" href="$src"$other>)) if $src; + push(@result,$XHTML ? qq(<link rel="$rel" type="$type" href="$src" $other/>) + : qq(<link rel="$rel" type="$type" href="$src"$other>)) if $src; } } else { # Otherwise, push the single -src, if it exists. - push(@result,$XHTML ? qq(<link rel="stylesheet" type="$type" href="$src" $other/>) - : qq(<link rel="stylesheet" type="$type" href="$src"$other>) + push(@result,$XHTML ? qq(<link rel="$rel" type="$type" href="$src" $other/>) + : qq(<link rel="$rel" type="$type" href="$src"$other>) ) if $src; } if ($verbatim) { @@ -1691,8 +1693,8 @@ sub _style { } else { my $src = $s; - push(@result,$XHTML ? qq(<link rel="stylesheet" type="$type" href="$src" $other/>) - : qq(<link rel="stylesheet" type="$type" href="$src"$other>)); + push(@result,$XHTML ? qq(<link rel="$rel" type="$type" href="$src" $other/>) + : qq(<link rel="$rel" type="$type" href="$src"$other>)); } } @result; @@ -1798,7 +1800,7 @@ sub startform { $action = $self->escapeHTML($action); } else { - $action = $self->escapeHTML($self->request_uri); + $action = $self->escapeHTML($self->request_uri || $self->self_url); } $action = qq(action="$action"); my($other) = @other ? " @other" : ''; @@ -2591,7 +2593,7 @@ sub image_button { my($name,$src,$alignment,@other) = rearrange([NAME,SRC,ALIGN],@p); - my($align) = $alignment ? " align=\U\"$alignment\"" : ''; + my($align) = $alignment ? " align=\L\"$alignment\"" : ''; my($other) = @other ? " @other" : ''; $name=$self->escapeHTML($name); return $XHTML ? qq(<input type="image" name="$name" src="$src"$align$other />) @@ -3419,7 +3421,7 @@ END_OF_FUNC 'upload' =><<'END_OF_FUNC', sub upload { my($self,$param_name) = self_or_default(@_); - my @param = grep {ref && defined(fileno($_))}, $self->param($param_name)); + my @param = grep {ref($_) && defined(fileno($_))} $self->param($param_name); return unless @param; return wantarray ? @param : $param[0]; } @@ -6664,6 +6666,7 @@ SSL session. The cookie created by cookie() must be incorporated into the HTTP header within the string returned by the header() method: + use CGI ':standard'; print header(-cookie=>$my_cookie); To create multiple cookies, give header() an array reference: @@ -6675,12 +6678,13 @@ To create multiple cookies, give header() an array reference: print header(-cookie=>[$cookie1,$cookie2]); To retrieve a cookie, request it by name by calling cookie() method -without the B<-value> parameter: +without the B<-value> parameter. This example uses the object-oriented +form: use CGI; $query = new CGI; - $riddle = cookie('riddle_name'); - %answers = cookie('answers'); + $riddle = $query->cookie('riddle_name'); + %answers = $query->cookie('answers'); Cookies created with a single scalar value, such as the "riddle_name" cookie, will be returned in that form. Cookies with array and hash @@ -6723,7 +6727,7 @@ There is no specific support for creating <frameset> sections in CGI.pm, but the HTML is very simple to write. See the frame documentation in Netscape's home pages for details - http://home.netscape.com/assist/net_sites/frames.html + http://wp.netscape.com/assist/net_sites/frames.html =item 2. Specify the destination for the document in the HTTP header @@ -7015,6 +7019,14 @@ and pass it to start_html() in the -head argument, as in: Link({-rel=>'stylesheet',-type=>'text/css',-src=>'/ss/fred.css',-media=>'paper'})); print start_html({-head=>\@h}) +To create primary and "alternate" stylesheet, use the B<-alternate> option: + + start_html(-style=>{-src=>[ + {-src=>'/styles/print.css'}, + {-src=>'/styles/alt.css',-alternate=>1} + ] + }); + =head1 DEBUGGING If you are running the script from the command line or in the perl diff --git a/lib/CGI/Changes b/lib/CGI/Changes index 3d5b7124a2..23db2a2804 100644 --- a/lib/CGI/Changes +++ b/lib/CGI/Changes @@ -1,3 +1,17 @@ + Version 3.25 + 1. Fixed the link to the Netscape frames page. + 2. Added ability to specify an alternate stylesheet. + + Version 3.24 + 1. In startform(), if request_uri() returns undef, then falls back + to self_url(). This should rarely happen except when run outside of + the CGI environment. + 2. image button alignment options were mistakenly being capitalized, causing xhtml validation to fail. + + Version 3.23 + 1. Typo in upload() persisted, now fixed for real. Thanks to + Emanuele Zeppieri for correct patch and regression test. + Version 3.22 1. Typo in upload() function broke uploads. Now fixed (CPAN bug 21126). diff --git a/lib/CGI/Util.pm b/lib/CGI/Util.pm index 523007c5ef..b934916f78 100644 --- a/lib/CGI/Util.pm +++ b/lib/CGI/Util.pm @@ -261,7 +261,7 @@ sub expire_calc { $offset = 0; } elsif ($time=~/^\d+/) { return $time; - } elsif ($time=~/^([+-]?(?:\d+|\d*\.\d*))([mhdMy]?)/) { + } elsif ($time=~/^([+-]?(?:\d+|\d*\.\d*))([mhdMy])/) { $offset = ($mult{$2} || 1)*$1; } else { return $time; |