my @out;
# this is naff but it will work for now
-$line = "help" if !$line;
+$line = "help" unless $line;
my $lang = $self->lang;
$lang = 'en' if !$lang;
# The fields are:- privilege level, Language, full command name, short description
#
-my $h = new FileHandle;
+my $h = new IO::File;
if (!open($h, "$main::localcmd/Commands_$lang.hlp")) {
if (!open($h, "$main::cmd/Commands_$lang.hlp")) {
my $alias = CmdAlias::get_hlp($line);
$line = $alias if $alias;
-my $include;
+my $state = 0;
foreach $in (<$h>) {
next if $in =~ /^\#/;
chomp $in;
if ($in =~ /^===/) {
- $include = 0;
+ last if $state == 2; # come out on next command
$in =~ s/=== //;
my ($priv, $cmd, $desc) = split /\^/, $in;
next if $priv > $self->priv; # ignore subcommands that are of no concern
- next unless $cmd =~ /$line/i;
+ next unless $cmd =~ /^$line/i;
push @out, "$cmd $desc" unless $cmd =~ /-$/o;
- $include = 1;
+ $state = 1;
next;
}
- push @out, " $in" if $include;
+ if ($state > 0) {
+ push @out, " $in";
+ $state = 2;
+ }
}
close($h);