From b9a3b2d409087dc15c1c8ea186521c157d77fed7 Mon Sep 17 00:00:00 2001 From: Nicolas Boisselier Date: Wed, 29 May 2024 09:50:02 +0200 Subject: [PATCH] Fix argsAdd splice not working --- lib/perl/NB/CGI.pm | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/perl/NB/CGI.pm b/lib/perl/NB/CGI.pm index d6880978..9d3f9fe4 100644 --- a/lib/perl/NB/CGI.pm +++ b/lib/perl/NB/CGI.pm @@ -157,16 +157,30 @@ sub args2hash { sub argsAdd { my $p = shift; + #my $p = $_[0];shift; my $key = shift; $key = "-$key"; my $val = shift; # Delete existing - for (my $i=0;$i<@$p-1;$i++) + +# NB 29.05.24: splice not working ???? + #for (my $i=0;$i<@$p-1;$i++) + # NB 29.05.24 for (my $i=0;$i<@$p-1;$i=$i+2) + # NB 29.05.24 { + # NB 29.05.24 next if $p->[$i] ne $key; + # NB 29.05.24 warn ">>$i: ".$p->[$i]."==$key: $val"; + # NB 29.05.24 splice(@$p,$i,2); + # NB 29.05.24 } + + my @newp; + for (my $i=0;$i<@$p-1;$i=$i+2) { - next if $p->[$i] ne $key; - splice(@$p,$i,2); + next if $p->[$i] eq $key; + push(@newp,$p->[$i],$p->[$i+1]); } + @$p = @newp; + #use Data::Dumper; warn Dumper($key,$val,$p); # Add new one #push(@$p,$key,$val); unshift(@$p,$key,$val); @@ -194,6 +208,7 @@ sub header { %p = &argsAdd(\@p,'expires','now'); #&CGI::cache(0); # we dont want doubles headers } + #warn map("$_\n",@p); #warn join('|',@p); #warn join('|',keys(%p)); #die join('|',keys(%p)); -- 2.47.3