nl2br(), dump()

databind
vitalif 2010-05-09 22:35:11 +00:00 committed by Vitaliy Filippov
parent 18ac565b02
commit 36b52c6a17
2 changed files with 24 additions and 1 deletions

View File

@ -656,12 +656,22 @@ sub normalize_url ($$)
return $url if $url =~ m%^[a-z]+://%iso; return $url if $url =~ m%^[a-z]+://%iso;
if ($url =~ m%^/%so) if ($url =~ m%^/%so)
{ {
$base = $1 if $base =~ m%^([a-z]+://[^/]*)%so; $base = $1 if $base =~ m%^([a-z]+://[^/]*)%iso;
} }
elsif ($url =~ /^\?/so) elsif ($url =~ /^\?/so)
{ {
$base = $& if $base =~ m/^[^\?]*/so; $base = $& if $base =~ m/^[^\?]*/so;
} }
elsif ($url =~ s/^((\.\.\/)+)\/*//so)
{
my $n = length($1)/3;
my $d;
$base =~ m%^([a-z]+://[^/]*)/*(.*)$%iso;
($base, $d) = ($1, $2);
$d =~ s!(/+[^/]*){0,$n}$!!s;
$base .= '/';
$base .= "$d/" if $d;
}
else else
{ {
$base = $` if $base =~ m%[^\/]*$%so; $base = $` if $base =~ m%[^\/]*$%so;

View File

@ -683,6 +683,7 @@ sub function_replace { "resub($_[1], $_[2], $_[3])" }
sub function_split { "split($_[1], $_[2], $_[3])" } sub function_split { "split($_[1], $_[2], $_[3])" }
sub function_quote { "quotequote($_[1])" } *function_q = *function_quote; sub function_quote { "quotequote($_[1])" } *function_q = *function_quote;
sub function_html { "htmlspecialchars($_[1])" } *function_s = *function_html; sub function_html { "htmlspecialchars($_[1])" } *function_s = *function_html;
sub function_nl2br { "resub(qr/\\n/so, '<br />', $_[1])" }
sub function_uriquote{ "uri_escape($_[1])" } *function_uri_escape = *function_urlencode = *function_uriquote; sub function_uriquote{ "uri_escape($_[1])" } *function_uri_escape = *function_urlencode = *function_uriquote;
sub function_strip { "strip_tags($_[1])" } *function_t = *function_strip; sub function_strip { "strip_tags($_[1])" } *function_t = *function_strip;
sub function_h { "strip_unsafe_tags($_[1])" } *function_strip_unsafe = *function_h; sub function_h { "strip_unsafe_tags($_[1])" } *function_strip_unsafe = *function_h;
@ -715,6 +716,8 @@ sub function_pop { "pop(\@{$_[1]})"; }
sub function_unshift { shift(@_); "unshift(\@{".shift(@_)."}, ".join(",", @_).")"; } sub function_unshift { shift(@_); "unshift(\@{".shift(@_)."}, ".join(",", @_).")"; }
sub function_push { shift(@_); "push(\@{".shift(@_)."}, ".join(",", @_).")"; } sub function_push { shift(@_); "push(\@{".shift(@_)."}, ".join(",", @_).")"; }
sub function_dump { "exec_dump(" . join(",", @_) . ")" }
# map() # map()
sub function_map sub function_map
{ {
@ -778,6 +781,16 @@ sub exec_subst
return $str; return $str;
} }
# Data::Dumper
sub exec_dump
{
require Data::Dumper;
local $Data::Dumper::Indent = 1;
local $Data::Dumper::Varname = '';
local $Data::Dumper::Sortkeys = 1;
return scalar Data::Dumper::Dumper(@_);
}
1; 1;
__END__ __END__