make mod_perl request object a global in PLP::Apache only
[perl/plp/.git] / PLP / Functions.pm
index b4891ee56453ae832b532f92aef31f5969cf6ae9..3eb07cacef913d6080d49eb81ca3aa5586e6fbde 100644 (file)
@@ -4,8 +4,8 @@ use base 'Exporter';
 use Fcntl qw(:flock);
 use strict;
 
-our @EXPORT = qw/Entity DecodeURI EncodeURI include PLP_END
-                 AddCookie ReadFile WriteFile AutoURL Counter Include exit/;
+our @EXPORT = qw/Entity DecodeURI EncodeURI Include include PLP_END
+                 AddCookie ReadFile WriteFile AutoURL Counter exit/;
 
 sub Include ($) {
        no strict;
@@ -37,7 +37,7 @@ sub Entity (@) {
        for (@$ref) {
                eval {
                        s/&/&/g;
-                       s/\"/"/g;
+                       s/"/"/g;
                        s/</&lt;/g;
                        s/>/&gt;/g;
                        s/\n/<br>\n/g;
@@ -52,8 +52,8 @@ sub DecodeURI (@) {
        my $ref = defined wantarray ? [@_] : \@_;
        for (@$ref) {
                eval {
-                       s/\+/%20/g;  # Browsers do y/ /+/ - I don't care about RFC's, but
-                                    # I do care about real-life situations.
+                       tr/+/ /;  # Browsers do tr/ /+/ - I don't care about RFCs, but
+                                 # I do care about real-life situations.
                        s/%([0-9A-Fa-f][0-9A-Fa-f])/chr hex $1/ge;
                };
        }
@@ -144,7 +144,7 @@ sub AutoURL ($) {
                $$ref =~ s/>\cC>/&gt;/g;
                $$ref =~ s/<\cC</&lt;/g;
        };
-       if ($@){ return defined wantarray ? @_ : undef }
+       if ($@){ return defined wantarray ? @_ : undef }  # return original on error
        return defined wantarray ? $$ref : undef;
 }
 
@@ -206,7 +206,7 @@ You should use this function instead of Perl's built-in C<END> blocks, because t
 
 =item Entity LIST
 
-Replaces HTML syntax characters by HTML entities, so they can be displayed literally. You should always use this on user input (or database output), to avoid cross-site-scripting vurnerabilities. This function does not do everything the L<HTML::Entity> does.
+Replaces HTML syntax characters by HTML entities, so they can be displayed literally. You should always use this when displaying user input (or database output), to avoid cross-site-scripting vurnerabilities.
 
 In void context, B<changes> the values of the given variables. In other contexts, returns the changed versions.