From 8fab1dd647777eae2c321e3e223d7a72a8c39580 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Tue, 26 May 2015 12:02:54 +0000 Subject: [PATCH] 00_CUL.pm: preserve data when CUL_Parse called recursivly (Forum #37418) git-svn-id: https://svn.fhem.de/fhem/trunk@8637 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_CUL.pm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fhem/FHEM/00_CUL.pm b/fhem/FHEM/00_CUL.pm index b636cdfd0..f3cf2fa8c 100755 --- a/fhem/FHEM/00_CUL.pm +++ b/fhem/FHEM/00_CUL.pm @@ -502,6 +502,8 @@ CUL_ReadAnswer($$$$) my ($mculdata, $rin) = ("", ''); my $buf; my $to = 3; # 3 seconds timeout + $mculdata = $hash->{PARTIAL} if(defined($hash->{PARTIAL})); + $to = $ohash->{RA_Timeout} if($ohash->{RA_Timeout}); # ...or less for(;;) { @@ -540,10 +542,12 @@ CUL_ReadAnswer($$$$) while(($mculdata =~ m/^([^\n]*\n)(.*)/s) || $anydata) { my $line = ($anydata ? $mculdata : $1); $mculdata = $2; + $hash->{PARTIAL} = $mculdata; # for recursive calls (undef, $line) = CUL_prefix(0, $ohash, $line); # Delete prefix if($regexp && $line !~ m/$regexp/) { $line =~ s/[\n\r]+//g; CUL_Parse($ohash, $hash, $ohash->{NAME}, $line); + $mculdata = $hash->{PARTIAL}; } else { return (undef, $line); } @@ -780,7 +784,9 @@ CUL_Read($) my $rmsg; ($rmsg,$culdata) = split("\n", $culdata, 2); $rmsg =~ s/\r//; + $hash->{PARTIAL} = $culdata; # for recursive calls CUL_Parse($hash, $hash, $name, $rmsg) if($rmsg); + $culdata = $hash->{PARTIAL}; } $hash->{PARTIAL} = $culdata; }