diff options
author | Guillaume Cottenceau <gc@mandriva.com> | 2003-03-07 17:32:04 +0000 |
---|---|---|
committer | Guillaume Cottenceau <gc@mandriva.com> | 2003-03-07 17:32:04 +0000 |
commit | 653c799da0aa230257f3487228be1a132993db36 (patch) | |
tree | 320fd8d7f6706c32203f6957dbb49b48d0df5e60 | |
parent | 809666fc2e83bfeb5056374a00aabf6ab34a0cd2 (diff) | |
download | drakx-653c799da0aa230257f3487228be1a132993db36.tar drakx-653c799da0aa230257f3487228be1a132993db36.tar.gz drakx-653c799da0aa230257f3487228be1a132993db36.tar.bz2 drakx-653c799da0aa230257f3487228be1a132993db36.tar.xz drakx-653c799da0aa230257f3487228be1a132993db36.zip |
fix rpmdrake dumping core when multiple searchs in
"selected" and "upgradable" sorting modes (#2899)
-rw-r--r-- | perl-install/drakxtools.spec | 7 | ||||
-rw-r--r-- | perl-install/ugtk2.pm | 14 |
2 files changed, 19 insertions, 2 deletions
diff --git a/perl-install/drakxtools.spec b/perl-install/drakxtools.spec index 7c9f83214..c5a6f4d93 100644 --- a/perl-install/drakxtools.spec +++ b/perl-install/drakxtools.spec @@ -1,7 +1,7 @@ Summary: The drakxtools (XFdrake, diskdrake, keyboarddrake, mousedrake...) Name: drakxtools Version: 9.1 -Release: 17mdk +Release: 18mdk Url: http://www.mandrakelinux.com/en/drakx.php3 Source0: %name-%version.tar.bz2 License: GPL @@ -291,6 +291,11 @@ file /etc/sysconfig/harddrake2/previous_hw | fgrep -q perl && %_datadir/harddrak %config(noreplace) %_sysconfdir/logrotate.d/drakxtools-http %changelog +* Fri Mar 7 2003 Guillaume Cottenceau <gc@mandrakesoft.com> 9.1-18mdk +- ugtk2.pm: fix rpmdrake dumping core when multiple searchs in some + sorting modes (#2899) +- network/adsl.pm: one small logical fix (fpons) + * Thu Mar 6 2003 Thierry Vignaud <tvignaud@mandrakesoft.com> 9.1-17mdk - draksplash: o fix #1766 diff --git a/perl-install/ugtk2.pm b/perl-install/ugtk2.pm index 2384ab19a..3d3027064 100644 --- a/perl-install/ugtk2.pm +++ b/perl-install/ugtk2.pm @@ -1173,11 +1173,23 @@ sub ask_browse_tree_info_given_widgets { foreach my $node (@{$ptree{$_}}) { my $category; my $parent = $node; + my @parents; while ($parent = $w->{tree_model}->iter_parent($parent)) { #- LEAKS my $parent_name = $w->{tree_model}->get($parent, 0); $category = $category ? "$parent_name|$category" : $parent_name; + $_->[1] = "$parent_name|$_->[1]" foreach @parents; + push @parents, [ $parent, $category ]; + } + if ($category =~ /^\Q$cat/) { + push @to_remove, $node; + foreach (@parents) { + next if $_->[1] eq $cat || !exists $wtree{$_->[1]}; + delete $wtree{$_->[1]}; + delete $node_state{$w->{tree_model}->get_path_str($_->[0])}; + delete $state_stats{$w->{tree_model}->get_path_str($_->[0])}; + $_->[0]->free; + } } - $cat eq $category and push @to_remove, $node; } foreach (@to_remove) { delete $node_state{$w->{tree_model}->get_path_str($_)}; |