diff options
author | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2008-11-13 22:19:16 +0000 |
---|---|---|
committer | einhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46> | 2008-11-13 22:19:16 +0000 |
commit | c81c44d32e58bf3f49dfb34341232bbe26c12cea (patch) | |
tree | d461c277286a7c017073c9384e5ae26ccb9704b1 /LedgerSMB | |
parent | 69326cd33298a19f8d0585fb5b35da8232afba1f (diff) |
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
Diffstat (limited to 'LedgerSMB')
-rw-r--r-- | LedgerSMB/DBObject.pm | 13 |
1 files changed, 4 insertions, 9 deletions
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 { |