From f1209599354e8fc39ad62525057c875c03edf37a Mon Sep 17 00:00:00 2001 From: Pragmatic Software Date: Sun, 14 May 2017 01:39:02 -0700 Subject: [PATCH] urban module: improve showing of number of entries --- modules/urban | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/modules/urban b/modules/urban index bb81af6e..b1f603d2 100755 --- a/modules/urban +++ b/modules/urban @@ -55,19 +55,15 @@ my $num_entries = @entries; if ($num_entries == 0) { print "$args: no definition found.\n"; exit; -} else { - if ($num_entries > 1) { - if (defined $entry) { - print "$entry/$num_entries:\n"; - } else { - print "1/$num_entries:\n"; - } - } } if (defined $entry) { if ($entry < 1 or $entry > $num_entries) { - print "No such entry. There are $num_entries for $args.\n"; + if ($num_entries == 1) { + print "There is only one entry for $args.\n"; + } else { + print "$args: no such entry. There are $num_entries entries.\n"; + } exit; } $entry--; @@ -75,6 +71,13 @@ if (defined $entry) { sub show_definition { my $entry = shift; + my $num = shift; + + $num = 1 if not defined $num; + + if ($num_entries > 1) { + print "$num/$num_entries: "; + } print "($entry->{'thumbs_up'}/$entry->{'thumbs_down'}) $entry->{'definition'}\n"; print "$entry->{'example'}\n" if $entry->{'example'}; @@ -83,12 +86,14 @@ sub show_definition { if (defined $show_all or defined $match) { my $shown; eval { + my $n = 0; for my $each (@entries) { + $n++; if (defined $match) { my $def = $each->{'definition'} . "\n" . $each->{'example'}; next if $def !~ m/$match/im; } - show_definition($each); + show_definition($each, $n); print "\n"; $shown++; } @@ -107,5 +112,5 @@ if (defined $show_all or defined $match) { print "$args: no definition matching '$match' found.\n"; } } else { - show_definition($entries[$entry]); + show_definition($entries[$entry], $entry + 1); }