made non-existant commands return an error

This commit is contained in:
djk 1998-11-10 21:59:07 +00:00
parent a0cf638d2e
commit 6832157d99

View File

@ -124,7 +124,7 @@ sub normal
($path, $fcmd) = search($main::cmd, $cmd, "pl") if !$path || !$fcmd; ($path, $fcmd) = search($main::cmd, $cmd, "pl") if !$path || !$fcmd;
my $package = find_cmd_name($path, $fcmd); my $package = find_cmd_name($path, $fcmd);
@ans = (0, "Syserr: compile err on $package\n$@$errstr") if !$package ; @ans = (0) if !$package ;
if ($package) { if ($package) {
my $c = qq{ \@ans = $package(\$self, \$args) }; my $c = qq{ \@ans = $package(\$self, \$args) };
@ -145,7 +145,7 @@ sub normal
} else { } else {
shift @ans; shift @ans;
if (@ans > 0) { if (@ans > 0) {
$self->send($self->msg('e2', @ans)); $self->send($self->msg('e2'), @ans);
} else { } else {
$self->send($self->msg('e1')); $self->send($self->msg('e1'));
} }
@ -394,6 +394,7 @@ sub find_cmd_name {
my $fh = new FileHandle; my $fh = new FileHandle;
if (!open $fh, $filename) { if (!open $fh, $filename) {
$errstr = "Syserr: can't open '$filename' $!"; $errstr = "Syserr: can't open '$filename' $!";
return undef;
}; };
local $/ = undef; local $/ = undef;
my $sub = <$fh>; my $sub = <$fh>;
@ -424,7 +425,6 @@ sub find_cmd_name {
print "\$\@ = $@"; print "\$\@ = $@";
$errstr = $@; $errstr = $@;
delete_package($package); delete_package($package);
$package = undef;
} else { } else {
#cache it unless we're cleaning out each time #cache it unless we're cleaning out each time
$Cache{$package}{mtime} = $mtime; $Cache{$package}{mtime} = $mtime;
@ -433,6 +433,7 @@ sub find_cmd_name {
#print Devel::Symdump->rnew($package)->as_string, $/; #print Devel::Symdump->rnew($package)->as_string, $/;
$package = "DXCommandmode::$package" if $package; $package = "DXCommandmode::$package" if $package;
$package = undef if $errstr;
return $package; return $package;
} }