summaryrefslogtreecommitdiff
path: root/LedgerSMB
diff options
context:
space:
mode:
authoreinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2008-11-13 22:19:16 +0000
committereinhverfr <einhverfr@4979c152-3d1c-0410-bac9-87ea11338e46>2008-11-13 22:19:16 +0000
commitc81c44d32e58bf3f49dfb34341232bbe26c12cea (patch)
treed461c277286a7c017073c9384e5ae26ccb9704b1 /LedgerSMB
parent69326cd33298a19f8d0585fb5b35da8232afba1f (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.pm13
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 {