From 472e343dba7682a1ee5ad4508fd7c14929afbdb0 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Mon, 5 Nov 2012 07:32:55 +0000 Subject: [PATCH] SetFn may return a second argument skpiTrigger (returning an array). git-svn-id: https://svn.fhem.de/fhem/trunk@2085 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index f0c558977..5462b05fd 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -1110,9 +1110,9 @@ DoSet(@) return "No set implemented for $dev" if(!$modules{$defs{$dev}{TYPE}}{SetFn}); @a = ReplaceEventMap($dev, \@a, 0) if($attr{$dev}{eventMap}); - my $ret = CallFn($dev, "SetFn", $defs{$dev}, @a); + my ($ret, $skipTrigger) = CallFn($dev, "SetFn", $defs{$dev}, @a); return $ret if($ret); - + return undef if($skipTrigger); shift @a; my $arg = $defs{$dev}{CHANGED} ? undef : join(" ", @a); return DoTrigger($dev, $arg); @@ -2246,10 +2246,17 @@ CallFn(@) } my $fn = $modules{$defs{$d}{TYPE}}{$n}; return "" if(!$fn); - no strict "refs"; - my $ret = &{$fn}(@_); - use strict "refs"; - return $ret; + if(wantarray) { + no strict "refs"; + my @ret = &{$fn}(@_); + use strict "refs"; + return @ret; + } else { + no strict "refs"; + my $ret = &{$fn}(@_); + use strict "refs"; + return $ret; + } } #####################################