+my ($path, $fcmd) = ($main::cmd, "help");;
+my @out;
+my @inpaths = ($main::localcmd, $main::cmd);
+my @helpfiles;
+
+# this is naff but it will work for now
+$line = "help" if !$line;
+$fcmd = lc $line;
+
+# each help file starts with a line that looks like:-
+#
+# === 0^EN^HELP^Description
+# text
+# text
+# text
+#
+# The fields are:- privilege level, Language, full command name, short description
+#
+
+if (!open(H, "$path/$fcmd.hlp")) {
+ return (1, "no help on $line available");
+}
+my $in;
+my $include = 0;
+my @in = <H>;
+close(H);
+
+foreach $in (@in) {
+ next if $in =~ /^\s*\#/;
+ chomp $in;
+ if ($in =~ /^===/) {
+ $include = 0;
+ $in =~ s/=== //;
+ my ($priv, $lang, $cmd, $desc) = split /\^/, $in;
+ next if $priv > $self->priv; # ignore subcommands that are of no concern
+ next if $self->lang && $self->lang ne $lang;
+ push @out, "$cmd - $desc";
+ $include = 1;
+ next;
+ }
+ push @out, $in if $include;
+}