From 575edd7dc7a89a513ec8c8dc17fb3fd1916b56ce Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Thu, 28 Apr 2016 19:45:08 +0000 Subject: [PATCH] fhem.pl: add perlSyntaxCheck for stateFormat (Forum #42431) git-svn-id: https://svn.fhem.de/fhem/trunk@11337 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 816576489..1f8b99a1f 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -308,8 +308,8 @@ $modules{Global}{AttrFn} = "GlobalAttr"; use vars qw($readingFnAttributes); $readingFnAttributes = "event-on-change-reading event-on-update-reading ". - "event-aggregator event-min-interval stateFormat ". - "timestamp-on-change-reading"; + "event-aggregator event-min-interval ". + "stateFormat:textField-long timestamp-on-change-reading"; %cmds = ( @@ -2503,7 +2503,10 @@ CommandAttr($$) if(grep { /$modifier/ } qw(none difference differential offset monotonic integral)) { $trigger =~ s/^:// if($trigger); - my %userReading = ( reading => $reading, trigger => $trigger, modifier => $modifier, perlCode => $perlCode ); + my %userReading = ( reading => $reading, + trigger => $trigger, + modifier => $modifier, + perlCode => $perlCode ); push @userReadings, \%userReading; } else { push @rets, "$sdev: unknown modifier $modifier for ". @@ -2550,6 +2553,8 @@ CommandAttr($$) delete($defs{$ioname}{".clientArray"}); # Force a recompute } if($attrName eq "stateFormat" && $init_done) { + my $err = perlSyntaxCheck($a[2], ()); + return $err if($err); evalStateFormat($hash); } addStructChange("attr", $sdev, $param) if(!defined($oVal) || $oVal ne $val); @@ -3869,7 +3874,7 @@ evalStateFormat($) if(!$sr) { $st = $st->{VAL} if(defined($st)); - } elsif($sr =~ m/^{(.*)}$/) { + } elsif($sr =~ m/^{(.*)}$/s) { $st = eval $1; if($@) { $st = "Error evaluating $name stateFormat: $@";