From 77ddcd64e50ace0bafd4e29188bc8a7a73fb73fe Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 25 Mar 2008 17:19:28 +0000 Subject: - partitioning wizard lirary: o allow "Use free space" if there is an extended partition even if all primary partitions are used (#38804) (*old* bug!) --- perl-install/NEWS | 5 +++++ perl-install/fs/partitioning_wizard.pm | 2 +- perl-install/install/NEWS | 3 +++ perl-install/partition_table/gpt.pm | 1 + perl-install/partition_table/raw.pm | 6 ++++++ 5 files changed, 16 insertions(+), 1 deletion(-) diff --git a/perl-install/NEWS b/perl-install/NEWS index 447c598a7..90cb7e55b 100644 --- a/perl-install/NEWS +++ b/perl-install/NEWS @@ -1,3 +1,8 @@ +- partitioning wizard lirary: + o allow "Use free space" if there is an extended + partition even if all primary partitions are used (#38804) + (*old* bug!) + Version 10.20 - 25 March 2008 - do not run main_quit if not in a main loop (eg: while loading GUI) diff --git a/perl-install/fs/partitioning_wizard.pm b/perl-install/fs/partitioning_wizard.pm index 980e2efd5..1ccca8ff5 100644 --- a/perl-install/fs/partitioning_wizard.pm +++ b/perl-install/fs/partitioning_wizard.pm @@ -79,7 +79,7 @@ sub partitionWizardSolutions { # each solution is a [ score, text, function ], where the function retunrs true if succeeded my @hds_rw = grep { !$_->{readonly} } @$hds; - my @hds_can_add = grep { $_->can_raw_add } @hds_rw; + my @hds_can_add = grep { $_->can_add } @hds_rw; if (fs::get::hds_free_space(@hds_can_add) > $min_linux) { $solutions{free_space} = [ 30, N("Use free space"), sub { fsedit::auto_allocate($all_hds, $partitions); 1 } ]; } else { diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS index f2c58931b..104a171f1 100644 --- a/perl-install/install/NEWS +++ b/perl-install/install/NEWS @@ -1,3 +1,6 @@ +- partitioning wizard: allow "Use free space" if there is an extended + partition even if all primary partitions are used (#38804) + (*old* bug!) - fix errors while setting PA preferences (#39270) - use umask=0 by default on vfat (#39315) - root/user password: diff --git a/perl-install/partition_table/gpt.pm b/perl-install/partition_table/gpt.pm index 81967d07e..5c46e25ca 100644 --- a/perl-install/partition_table/gpt.pm +++ b/perl-install/partition_table/gpt.pm @@ -213,6 +213,7 @@ sub raw_removed { my ($_hd, $raw) = @_; @$raw = grep { $_->{size} && $_->{pt_type} } @$raw; } +sub can_add { &can_raw_add } sub can_raw_add { my ($hd) = @_; @{$hd->{primary}{raw}} < $hd->{primary}{info}{nbPartitions}; diff --git a/perl-install/partition_table/raw.pm b/perl-install/partition_table/raw.pm index 6edc26507..44b4b6e01 100644 --- a/perl-install/partition_table/raw.pm +++ b/perl-install/partition_table/raw.pm @@ -192,6 +192,12 @@ sub openit { my $F; sysopen($F, $hd->{file}, $o_mode || 0) && $F; } +sub can_add { + my ($hd) = @_; + !$_->{size} && !$_->{pt_type} || isExtended($_) and return 1 foreach @{$hd->{primary}{raw}}; + 0; +} + sub raw_removed { my ($_hd, $_raw) = @_; } -- cgit v1.2.1