From c81c44d32e58bf3f49dfb34341232bbe26c12cea Mon Sep 17 00:00:00 2001 From: einhverfr Date: Thu, 13 Nov 2008 22:19:16 +0000 Subject: Correcting t/42 tests and dbobject array parsing. git-svn-id: https://ledger-smb.svn.sourceforge.net/svnroot/ledger-smb/trunk@2395 4979c152-3d1c-0410-bac9-87ea11338e46 --- LedgerSMB/DBObject.pm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'LedgerSMB') diff --git a/LedgerSMB/DBObject.pm b/LedgerSMB/DBObject.pm index dade3ab8..6e7abfd4 100644 --- a/LedgerSMB/DBObject.pm +++ b/LedgerSMB/DBObject.pm @@ -260,14 +260,10 @@ sub _parse_array { $next = ""; $separator = ""; if ($value =~ /^\{"/){ - while ($next eq "" or ($next =~ /\\".$/)){ - $value =~ s/^\{("[^"]*".)/\{/; - $next .= $1; - $next =~ /(.)$/; - $separator = $1; - $next .= "quoted"; - } - $next =~ s/"(.*)"$separator$/$1/; + $value =~ s/^\{"(([^"]|\\")*[^\\])"/\{/; + $next = $1; + $next =~ /(.)$/; + $value =~ s/^{,/{/; } elsif ($value =~ /^{({+)/){ my $open_braces = $1; @@ -277,7 +273,6 @@ sub _parse_array { $value =~ /^{($open_braces[^}]*$close_braces)/; my $parse_next = $1; $value =~ s/^{$parse_next/{/; - $value =~ s/^{,/{/; @$next = $self->_parse_array($parse_next); } else { -- cgit v1.2.3