summaryrefslogtreecommitdiffstats
path: root/perl-install/partition_table_dos.pm
diff options
context:
space:
mode:
authorFrancois Pons <fpons@mandriva.com>2000-01-24 13:11:27 +0000
committerFrancois Pons <fpons@mandriva.com>2000-01-24 13:11:27 +0000
commitfe0e92f4e338bd3ab690e409ff9ccde6cfe58780 (patch)
tree90162d89089414633e30308971a9e715f1b1363c /perl-install/partition_table_dos.pm
parent9e683c898b6592aaac1196f76dd9321c4426c912 (diff)
downloaddrakx-fe0e92f4e338bd3ab690e409ff9ccde6cfe58780.tar
drakx-fe0e92f4e338bd3ab690e409ff9ccde6cfe58780.tar.gz
drakx-fe0e92f4e338bd3ab690e409ff9ccde6cfe58780.tar.bz2
drakx-fe0e92f4e338bd3ab690e409ff9ccde6cfe58780.tar.xz
drakx-fe0e92f4e338bd3ab690e409ff9ccde6cfe58780.zip
first sparc release of DrakX.
Diffstat (limited to 'perl-install/partition_table_dos.pm')
-rw-r--r--perl-install/partition_table_dos.pm20
1 files changed, 18 insertions, 2 deletions
diff --git a/perl-install/partition_table_dos.pm b/perl-install/partition_table_dos.pm
index 1b25a8f0b..624f13ecf 100644
--- a/perl-install/partition_table_dos.pm
+++ b/perl-install/partition_table_dos.pm
@@ -8,6 +8,7 @@ use vars qw(@ISA);
use common qw(:common :system :file);
use partition_table_raw;
+use partition_table;
use c;
my @fields = qw(active start_head start_sec start_cyl type end_head end_sec end_cyl start size);
@@ -42,6 +43,14 @@ sub sector2CHS($$) {
($start, $h, $s + 1);
}
+#- use default partition table adust functions.
+sub adjustStart($$) {
+ &partition_table::adjustStart;
+}
+sub adjustEnd($$) {
+ &partition_table::adjustEnd;
+}
+
sub read($$) {
my ($hd, $sector) = @_;
my $tmp;
@@ -67,8 +76,15 @@ sub read($$) {
sub write($$$;$) {
my ($hd, $sector, $pt) = @_;
- local *F; partition_table_raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing";
- c::lseek_sector(fileno(F), $sector, $offset) or return 0;
+ #- handle testing for writing partition table on file only!
+ local *F;
+ if ($::testing) {
+ my $file = "/tmp/partition_table_$hd->{device}";
+ open F, ">$file" or die "error opening test file $file";
+ } else {
+ partition_table_raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing";
+ c::lseek_sector(fileno(F), $sector, $offset) or return 0;
+ }
@$pt == $nb_primary or die "partition table does not have $nb_primary entries";
foreach (@$pt) {