X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=cmd%2Fhelp.pl;h=51dfa930a413d56e9e2900b10927dd5068fa602a;hb=b870b63342a1b7c2cab0123b79942c7dda109d08;hp=afdd2d302df66cc0d14db4c1dba93ba20b3eaf0d;hpb=a06ff95db570322cf86b713d4a6b410ea007b8e0;p=spider.git diff --git a/cmd/help.pl b/cmd/help.pl index afdd2d30..51dfa930 100644 --- a/cmd/help.pl +++ b/cmd/help.pl @@ -14,7 +14,6 @@ my ($self, $line) = @_; my @out; # this is naff but it will work for now -$line = "help" if !$line; my $lang = $self->lang; $lang = 'en' if !$lang; @@ -35,36 +34,41 @@ $lang = 'en' if !$lang; my $h = new IO::File; if (!open($h, "$main::localcmd/Commands_$lang.hlp")) { + $lang = 'en'; if (!open($h, "$main::cmd/Commands_$lang.hlp")) { return (1, $self->msg('helpe1')); } } my $in; -$line =~ s/![\w\/]//og; -$line =~ s/\//\.\*\//og; -$line =~ s/^\s+//og; -$line =~ s/\s+$//og; +$line =~ s/[^\w\/]//g; +$line =~ s/\//\.\*\//g; +$line =~ s/^\s+//g; +$line =~ s/\s+$//g; +$line = "help" if $line =~ /^\s*$/; # sort out aliases 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);