X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=tel2name;h=819f0b5e7af9daffcd80cde3c2b0de2cbfc2b364;hb=2b7d9218797959988e25c6cc8282a2f5eaa107fe;hp=562b133083af4b6b16c0fc1461f81dff2fb9bc62;hpb=178e242170f48c475af8ccbe19f68bb35a6facfe;p=utils.git diff --git a/tel2name b/tel2name index 562b133..819f0b5 100755 --- a/tel2name +++ b/tel2name @@ -25,9 +25,7 @@ sub yplookup { } push @matches, $match; } - for $match (@matches) { - print "$match\n"; - } + return @matches; } sub wplookup { @@ -49,9 +47,7 @@ sub wplookup { } push @matches, $match; } - for $match (@matches) { - print "$match\n"; - } + return @matches; } $tel = $ARGV[0]; @@ -68,12 +64,27 @@ if(open NT, $ENV{"HOME"} . "/phone/nametab") { $yppid = open YP, "-|"; if($yppid == 0) { - yplookup $tel; + $mod = 0; + bt: while(1) { + if(@matches = yplookup $tel) { + for $match (@matches) { + print $match; + print " ($tel)" if $mod; + print "\n"; + } + last bt; + } + last bt if !($tel =~ /(.+)[^0](0*)$/); + $tel = $1 . "0" . $2; + $mod = 1; + } exit 0; } $wppid = open WP, "-|"; if($wppid == 0) { - wplookup $tel; + for $match (wplookup $tel) { + print "$match\n"; + } exit 0; } binmode(YP, ":utf8"); @@ -82,18 +93,18 @@ binmode(WP, ":utf8"); match: while() { chomp; for $prev (@matches) { - next match if $prev eq $_; + next match if (lc $prev) eq (lc $_); } + print "$_\n"; + flush; push @matches, $_; } match: while() { chomp; for $prev (@matches) { - next match if $prev eq $_; + next match if (lc $prev) eq (lc $_); } + print "$_\n"; + flush; push @matches, $_; } - -for $match (@matches) { - print "$match\n"; -}