summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Master/texmf/scripts/texlive/tlmgrgui.pl35
1 files changed, 20 insertions, 15 deletions
diff --git a/Master/texmf/scripts/texlive/tlmgrgui.pl b/Master/texmf/scripts/texlive/tlmgrgui.pl
index 8ccd655253e..da47d50f47c 100644
--- a/Master/texmf/scripts/texlive/tlmgrgui.pl
+++ b/Master/texmf/scripts/texlive/tlmgrgui.pl
@@ -125,6 +125,7 @@ my $show_schemes = 1;
my $match_descriptions = 1;
my $match_filenames = 1;
my $match_taxonomies = 1;
+my $match_text = "";
my $selection_value = 0;
@@ -347,6 +348,7 @@ sub do_rest_of_gui {
# $match_filenames = 1;
# }
# }
+ $match_text = $new_val;
update_grid(); return 1; });
my $filter_selection = $filter_frame->Labelframe(-text => __("Selection"));
@@ -842,8 +844,13 @@ sub update_grid {
} else {
@displist = (@schemes, @colls, @packs);
}
+ my %match_hit;
for my $p (@displist) {
- if ($crit_match || MatchesFilters($p)) {
+ $match_hit{$p} = 1 if MatchesFilters($p);
+ }
+ my @match_keys = keys %match_hit;
+ for my $p (@displist) {
+ if ($crit_match || defined($match_hit{$p})) {
if (defined($selectcode)) {
$Packages{$p}{'selected'} = $selectcode;
}
@@ -912,20 +919,17 @@ sub MatchesFilters {
#
# match dealing
#
- # * some search targets selected, search string empty
- # + search string empty
- # -> show all packages
- # + search string non-empty
- # -> only show matching packages
- # * no search target selected
- # + search string empty
- # -> show empty list (no warning)
- # + search string non-empty
+ # * search string empty
+ # -> true
+ # * search string non-empty
+ # + some search targets selected
+ # -> check
+ # + no search target selected
# -> show empty list (maybe show warning "select something")
#
if ($match_descriptions || $match_taxonomies || $match_filenames) {
my $found = 0;
- my $r = $match_entry->get;
+ my $r = $match_text;
if ($r eq "") {
return 1;
}
@@ -940,7 +944,7 @@ sub MatchesFilters {
}
}
if (!$found) {
- if ($match_taxonomies) {
+ if (defined($taxonomy) && $match_taxonomies) {
if ($Packages{$p}{'taxonomy'} =~ m/$r/i) {
$found = 1;
}
@@ -960,11 +964,12 @@ sub MatchesFilters {
}
# otherwise more checks have to be done
} else {
- my $r = $match_entry->get;
- if ($r ne "") {
+ if ($match_text eq "") {
+ return 1;
+ } else {
# we could give a warning "select something" but HOW???
+ return 0;
}
- return 0
}
# selection
if ($selection_value == 0) {