Revision 7d639e01
Von Moritz Bunkus vor fast 18 Jahren hinzugefügt
bin/mozilla/common.pl | ||
---|---|---|
16 | 16 |
sub save_form { |
17 | 17 |
$lxdebug->enter_sub(); |
18 | 18 |
|
19 |
my $old_form = ""; |
|
20 |
map({ $old_form .= "$_=" . $form->escape($form->{$_}) . '&'; } keys(%{$form})); |
|
21 |
chop($old_form); |
|
19 |
my (@names, @values); |
|
20 |
foreach my $key (keys(%{$form})) { |
|
21 |
push(@names, "\$form->{\"$key\"}"); |
|
22 |
push(@values, $form->{$key}); |
|
23 |
} |
|
24 |
my $dumper = Data::Dumper->new(\@values, \@names); |
|
25 |
$dumper->Indent(0); |
|
26 |
my $old_form = $dumper->Dump(); |
|
22 | 27 |
|
23 | 28 |
$lxdebug->leave_sub(); |
24 | 29 |
|
... | ... | |
28 | 33 |
sub restore_form { |
29 | 34 |
$lxdebug->enter_sub(); |
30 | 35 |
|
31 |
my ($old_form) = @_; |
|
32 |
|
|
33 |
map({ delete($form->{$_}); } keys(%{$form})); |
|
36 |
my ($old_form, $no_delete) = @_; |
|
34 | 37 |
|
35 |
foreach my $pair (split('&', $old_form)) { |
|
36 |
my ($key, $value) = split('=', $form->unescape($pair), 2); |
|
37 |
$form->{$key} = $value; |
|
38 |
} |
|
38 |
map({ delete($form->{$_}); } keys(%{$form})) unless ($no_delete); |
|
39 |
eval($old_form); |
|
39 | 40 |
|
40 | 41 |
$lxdebug->leave_sub(); |
41 | 42 |
} |
Auch abrufbar als: Unified diff
save_form() und restore_form() koennen jetzt auch mit Arrays umgehen, die in $form gespeichert sind.