From 046ae8584ee1ccab214624518accf046304c8970 Mon Sep 17 00:00:00 2001 From: Werner Almesberger Date: Sun, 17 Oct 2010 00:13:21 -0300 Subject: [PATCH] dk-catq.pl: allow selection of top category as well - boom/dist/dk/dk-catq.pl: category can now include the top-level category (syntax: top/sub) - boom/dist/dk/dk-catq.pl: corrected value printed in "no such value" error message --- boom/dist/dk/dk-catq.pl | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/boom/dist/dk/dk-catq.pl b/boom/dist/dk/dk-catq.pl index b3624ee..1c8ab46 100755 --- a/boom/dist/dk/dk-catq.pl +++ b/boom/dist/dk/dk-catq.pl @@ -41,6 +41,8 @@ while (<>) { $id = shift @q; $key = shift @q; $cat = shift @q; +($topcat, $cat) = ($`, $') if $cat =~ m|/|; + for (@q) { die "not a field=value pair: \"$_\"" unless /\s*=\s*/; push(@{ $f{$`} }, $'); @@ -57,6 +59,9 @@ $url = $URL.$key; if ($q[1] =~ /Digi-Key</) { undef $found; for (@q) { + $on = $1 eq $topcat if + defined $topcat && /catfiltertopitem>\s*(.*?)\s*</; + next if defined $topcat && !$on; next unless /Cat=(\d+)[&"].*?>\s*(.*?)\s*[(<]/; next if $2 ne $cat; $found = $1; @@ -98,7 +103,7 @@ for (keys %f) { die "no such field: $_" unless defined $field; for $v (@{ $f{$_} }) { $value = $val{$_}{$v}; - die "no such value: \"$_\"=\"$f{$_}\"" unless defined $value; + die "no such value: \"$_\"=\"$v\"" unless defined $value; $url .= "&$field=$value"; } }