Adding better regexp check.

Multiline command allowed


git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@6195 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2014-07-04 11:53:51 +00:00
parent b159444aca
commit aba8160d6a

View File

@ -25,7 +25,7 @@ cmdalias_Define($$$)
{ {
my ($hash, $def) = @_; my ($hash, $def) = @_;
if($def !~ m/^([^ ]*) cmdalias ([^ ]*)(.*) AS (.*)$/) { if($def !~ m/^([^ ]*) cmdalias ([^ ]*)(.*) AS (.*)$/s) {
my $msg = my $msg =
"wrong syntax: define <name> cmdalias <cmd> [parameter] AS command..."; "wrong syntax: define <name> cmdalias <cmd> [parameter] AS command...";
return $msg; return $msg;
@ -33,7 +33,8 @@ cmdalias_Define($$$)
my ($name, $alias, $param, $newcmd) = ($1, $2, $3, $4); my ($name, $alias, $param, $newcmd) = ($1, $2, $3, $4);
$param =~ s/^ *//; $param =~ s/^ *//;
# Checking for misleading regexps # Checking for misleading regexps
eval { "Hallo" =~ m/^$param$/ }; return "Bad regexp: starting with *" if($param =~ m/^\*/);
eval { qr/^$param$/ };
return "$name: Bad regexp in $param: $@" if($@); return "$name: Bad regexp in $param: $@" if($@);
$hash->{ALIAS} = lc($alias); $hash->{ALIAS} = lc($alias);
$hash->{PARAM} = $param; $hash->{PARAM} = $param;