fix optimisation (bug #312832), and explain the code

This commit is contained in:
Guillaume Rousse 2010-11-16 23:05:08 +01:00
parent 2b6f8de738
commit d2e8e66f09

View File

@ -8,8 +8,16 @@ my %seen;
sub print_modules_real {
my ($base, $dir, $word) = @_;
# return immediately if the base doesn't match
return if $base && $base !~ /^\Q$word/;
# return immediatly if potential completion doesn't match current word
# a double comparaison is used to avoid dealing with string lengths
# (the shorter being the pattern to be used as the regexp)
# word 'Fi', base 'File' -> match 'File' against 'Fi'
# word 'File::Sp', base 'File' -> match 'File::Sp' againt 'File'
return if
$base &&
$word &&
$base !~ /^\Q$word/ &&
$word !~ /^\Q$base/;
chdir($dir) or return;