Merge branch 'master' of http://repo.or.cz/r/msysgit into devel
[msysgit/historical-msysgit.git] / lib / perl5 / 5.6.1 / abbrev.pl
blobc505a6f28bd7bb79152fd90fc57fd0e6cbf83f0c
1 ;# Usage:
2 ;# %foo = ();
3 ;# &abbrev(*foo,LIST);
4 ;# ...
5 ;# $long = $foo{$short};
8 # This library is no longer being maintained, and is included for backward
9 # compatibility with Perl 4 programs which may require it.
11 # In particular, this should not be used as an example of modern Perl
12 # programming techniques.
14 # Suggested alternative: Text::Abbrev
17 package abbrev;
19 sub main'abbrev {
20 local(*domain) = @_;
21 shift(@_);
22 @cmp = @_;
23 local($[) = 0;
24 foreach $name (@_) {
25 @extra = split(//,$name);
26 $abbrev = shift(@extra);
27 $len = 1;
28 foreach $cmp (@cmp) {
29 next if $cmp eq $name;
30 while (@extra && substr($cmp,0,$len) eq $abbrev) {
31 $abbrev .= shift(@extra);
32 ++$len;
35 $domain{$abbrev} = $name;
36 while ($#extra >= 0) {
37 $abbrev .= shift(@extra);
38 $domain{$abbrev} = $name;