X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FCmdAlias.pm;h=a424f8e861ebb5a00cb15f415293be47bb8db3fa;hb=fa18779239db0812846a1bb383359d7eab272697;hp=e5f6686ab05811e500603b470364806f923809b0;hpb=6a0068ec3df1dca0c6ae2714af3c0a4a62998dcf;p=spider.git diff --git a/perl/CmdAlias.pm b/perl/CmdAlias.pm index e5f6686a..a424f8e8 100644 --- a/perl/CmdAlias.pm +++ b/perl/CmdAlias.pm @@ -41,34 +41,31 @@ use Carp; use strict; -use vars qw(%alias $cmd_mtime $localcmd_mtime $fn $localfn); +use vars qw(%alias $fn $localfn); %alias = (); -$cmd_mtime = 1; -$localcmd_mtime = 1; - $fn = "$main::cmd/Aliases"; $localfn = "$main::localcmd/Aliases"; -sub checkfiles +sub load { - my $m = -M $fn; -# print "m: $m oldmtime: $cmd_mtime\n"; - if ($m < $cmd_mtime) { - do $fn; + my $ref = shift; + if (-e $localfn) { + do $localfn; + return ($@) if $@ && ref $ref; + confess $@ if $@; + return (); + } + do $fn; + return ($@) if $@ && ref $ref; confess $@ if $@; - $cmd_mtime = $m; - $localcmd_mtime = 0; - } - if (-e $localfn) { - $m = -M $localfn; - if ($m < $localcmd_mtime) { - do $localfn; - confess $@ if $@; - $localcmd_mtime = $m; - } - } + return (); +} + +sub init +{ + load(); } # @@ -82,15 +79,13 @@ sub get_cmd $let = lc $let; - checkfiles(); - $ref = $alias{$let}; return undef if !$ref; $n = @{$ref}; for ($i = 0; $i < $n; $i += 3) { if ($s =~ /$ref->[$i]/i) { - my $ri = qq{\$ro = "$ref->[$i+1]"}; + my $ri = qq{\$ro = "$ref->[$i+1]"}; my $ro; eval $ri; return $ro; @@ -110,16 +105,16 @@ sub get_hlp $let = lc $let; - checkfiles(); - $ref = $alias{$let}; return undef if !$ref; $n = @{$ref}; for ($i = 0; $i < $n; $i += 3) { if ($s =~ /$ref->[$i]/i) { - my $ri = qq{$ref->[$i+2]}; - return $ri; + my $ri = qq{\$ro = "$ref->[$i+2]"}; + my $ro; + eval $ri; + return $ro; } } return undef;