X-Git-Url: http://git.shiar.net/perl/plp/.git/blobdiff_plain/b7a10718f1c1e5d0028cd367c337e9f85dc56618:/plpfunc.pm..0f5e78a789961923b45cae1a881c655fff9e7283:/PLP/Functions.pm diff --git a/plpfunc.pm b/PLP/Functions.pm similarity index 72% rename from plpfunc.pm rename to PLP/Functions.pm index 6d78066..9d7b33c 100644 --- a/plpfunc.pm +++ b/PLP/Functions.pm @@ -1,32 +1,43 @@ -#!/usr/bin/perl -# The shebang is only there for mcedit syntax highlights, as I'm too lazy to -# change the configfile. It won't hurt performance +#-------------------------# + package PLP::Functions; +#-------------------------# +use base 'Exporter'; +use strict; -#use URI::Escape; +our @EXPORT = qw/HiddenFields Entity DecodeURI EncodeURI Entity include + AddCookie ReadFile WriteFile AutoURL Counter Include/; -use strict; -use vars qw(%header); +sub Include ($) { + my ($file) = $_[0]; + $PLP::inA = 0; + $PLP::inB = 0; + eval PLP::source($file, 0); +} + +sub include ($) { + goto &Include; +} -sub HiddenFields($@){ +sub HiddenFields ($@) { my $hash = shift; my %saves; @saves{@_} = (); - for (keys %$hash){ + for (keys %$hash) { print qq{} unless exists $saves{$_}; } } -sub Entity(@){ +sub Entity (@) { my $ref; my @copy; - if (defined wantarray){ + if (defined wantarray) { @copy = @_; $ref = \@copy; - }else{ + } else { $ref = \@_; } - for (@$ref){ + for (@$ref) { eval { s/&/&/g; s/\"/"/g; @@ -43,36 +54,36 @@ sub Entity(@){ # Browsers do s/ /+/ - I don't care about RFC's, but I do care about real-life # situations. -sub DecodeURI(@){ +sub DecodeURI (@) { my @r; local $_; - for (@_){ + for (@_) { s/\+/%20/g; my $dec = $_; $dec =~ s/%([0-9A-Fa-f][0-9A-Fa-f])/chr hex $1/ge; - if (defined wantarray){ + if (defined wantarray) { push @r, $dec; - }else{ + } else { eval {$_ = $dec}; # return undef if $@; # ;DecodeURI("foo"); } } return defined wantarray ? (wantarray ? @r : "@r") : undef; } -sub EncodeURI(@){ +sub EncodeURI (@) { my @r; local $_; - for (@_){ + for (@_) { my $esc = $_; $esc =~ s{ - ([^;\/?:@&=\$,A-Za-z0-9\-_.!~*\'()]) + ([^\/?:@\$,A-Za-z0-9\-_.!~*\'()]) }{ sprintf("%%%02x", ord($1)) }xge; - if (defined wantarray){ + if (defined wantarray) { push @r, $esc; - }else{ + } else { eval {$_ = $esc}; # return undef if $@; # ;EncodeURI("foo"); } @@ -80,32 +91,32 @@ sub EncodeURI(@){ return defined wantarray ? (wantarray ? @r : "@r") : undef; } -sub AddCookie($){ - if ($header{'Set-Cookie'}){ - $header{'Set-Cookie'} .= "\nSet-Cookie: $_[0]"; - }else{ - $header{'Set-Cookie'} = $_[0]; +sub AddCookie ($) { + if ($PLP::Script::header{'Set-Cookie'}) { + $PLP::Script::header{'Set-Cookie'} .= "\nSet-Cookie: $_[0]"; + } else { + $PLP::Script::header{'Set-Cookie'} = $_[0]; } } -sub ReadFile($){ +sub ReadFile ($) { local *READFILE; local $/ = undef; - open (READFILE, "<$_[0]"); + open (READFILE, '<', $_[0]); my $r = ; close READFILE; return $r; } -sub WriteFile($$){ +sub WriteFile ($$) { local *WRITEFILE; - open (WRITEFILE, ">$_[0]"); + open (WRITEFILE, '>', $_[0]); flock WRITEFILE, 2; print WRITEFILE $_[1]; close WRITEFILE; } -sub Counter($){ +sub Counter ($) { local *COUNTER; local $/ = undef; open COUNTER, "+<$_[0]" or @@ -120,7 +131,7 @@ sub Counter($){ return $counter; } -sub AutoURL($){ +sub AutoURL ($) { # This sub assumes your string does not match /(["<>])\cC\1/ my $ref; if (defined wantarray){ @@ -151,4 +162,6 @@ sub AutoURL($){ if ($@){ return defined wantarray ? @_ : undef } return defined wantarray ? $$ref : undef; } + + 1;