From e54774754b65bc28128cc8a5b5bfc1afbc0d103f Mon Sep 17 00:00:00 2001 From: rudolfkoenig Date: Sun, 14 Oct 2018 11:53:38 +0000 Subject: [PATCH] fhem.pl: fix help cmd followed by cmd with different casing (Forum #74903) git-svn-id: https://svn.fhem.de/fhem/trunk@17528 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/fhem.pl | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/fhem/fhem.pl b/fhem/fhem.pl index 85d46e0a9..d0dab7d97 100755 --- a/fhem/fhem.pl +++ b/fhem/fhem.pl @@ -1165,14 +1165,16 @@ AnalyzeCommand($$;$) ############# # Search for abbreviation sub - getAbbr($$) + getAbbr($$;$) { - my ($fn,$h) = @_; + my ($fn,$h,$isMod) = @_; my $lcfn = lc($fn); my $fnlen = length($fn); - return $fn if(defined($h->{$fn})); + return $fn if(defined($h->{$fn}) && ($isMod || $h->{$fn}{Fn})); # speedup foreach my $f (sort keys %{$h}) { - if(length($f) >= $fnlen && lc(substr($f,0,$fnlen)) eq $lcfn) { + if(length($f) >= $fnlen && + lc(substr($f,0,$fnlen)) eq $lcfn && + ($isMod || $h->{$f}{Fn})) { Log 5, "AnalyzeCommand: trying $f for $fn"; return $f; } @@ -1190,7 +1192,7 @@ AnalyzeCommand($$;$) if(!$cmds{$fn} || !defined($cmds{$fn}{Fn})) { my $modName; $modName = $cmds{$fn}{ModuleName} if($cmds{$fn} && $cmds{$fn}{ModuleName}); - $modName = getAbbr($fn,\%modules) if(!$modName); + $modName = getAbbr($fn,\%modules,1) if(!$modName); LoadModule($modName) if($modName); my $lfn = getAbbr($fn,\%cmds);