X-Git-Url: http://dolda2000.com/gitweb/?p=utils.git;a=blobdiff_plain;f=tel2name;h=1623d7c1d641d804ece7da982ebcdf040f7bdcd9;hp=562b133083af4b6b16c0fc1461f81dff2fb9bc62;hb=307f4e9308c8c11069f48e3bd88fbedddf4f6de3;hpb=178e242170f48c475af8ccbe19f68bb35a6facfe diff --git a/tel2name b/tel2name index 562b133..1623d7c 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,32 +64,47 @@ 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"); binmode(WP, ":utf8"); -match: while() { +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() { +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"; -}