From 09ae4641a209afb9e5a9663f5328b5fb8fc57d88 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Thu, 19 Nov 2015 10:12:56 +0000 Subject: [PATCH] fhem.pl: allow $EVENT in multiple perl-commands in a chain. (Forum #44297) git-svn-id: https://svn.fhem.de/fhem/trunk@9934 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index a0e49d7a4..68732ea54 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -44,7 +44,7 @@ sub AddDuplicate($$); sub AnalyzeCommand($$;$); sub AnalyzeCommandChain($$;$); sub AnalyzeInput($); -sub AnalyzePerlCommand($$); +sub AnalyzePerlCommand($$;$); sub AssignIoPort($;$); sub AttrVal($$$); sub CallFn(@); @@ -932,9 +932,9 @@ AnalyzeCommandChain($$;$) ##################################### sub -AnalyzePerlCommand($$) +AnalyzePerlCommand($$;$) { - my ($cl, $cmd) = @_; + my ($cl, $cmd, $calledFromChain) = @_; $cmd =~ s/\\ *\n/ /g; # Multi-line. Probably not needed anymore @@ -967,7 +967,7 @@ AnalyzePerlCommand($$) . $cmd; # Normally this is deleted in AnalyzeCommandChain, but ECMDDevice calls us # directly, and combining perl with something else isnt allowed anyway. - $evalSpecials = undef; + $evalSpecials = undef if(!$calledFromChain); } $cmdFromAnalyze = $cmd; @@ -991,7 +991,7 @@ AnalyzeCommand($$;$) if($cmd =~ m/^{.*}$/s) { # Perl code return "Forbidden command $cmd." if($allowed && $allowed !~ m/\bperl\b/); - return AnalyzePerlCommand($cl, $cmd); + return AnalyzePerlCommand($cl, $cmd, 1); } if($cmd =~ m/^"(.*)"$/s) { # Shell code in bg, to be able to call us from it