From 766b038e6286472d20c334860d189441dcc44f92 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 15 Nov 2005 17:45:04 +0000 Subject: handle "users" the way "user" is handled --- perl-install/diskdrake/interactive.pm | 11 ++++++----- perl-install/fs/mount_options.pm | 15 ++++++++------- 2 files changed, 14 insertions(+), 12 deletions(-) (limited to 'perl-install') diff --git a/perl-install/diskdrake/interactive.pm b/perl-install/diskdrake/interactive.pm index e2c666212..8651fc44d 100644 --- a/perl-install/diskdrake/interactive.pm +++ b/perl-install/diskdrake/interactive.pm @@ -950,13 +950,13 @@ sub Loopback { sub Options { my ($in, $hd, $part, $all_hds) = @_; - my @simple_options = qw(user noauto supermount username= password=); + my @simple_options = qw(users noauto supermount username= password=); my (undef, $user_implies) = fs::mount_options::list(); my ($options, $unknown) = fs::mount_options::unpack($part); my %help = fs::mount_options::help(); - my $prev_user = $options->{user}; + my %prev_options = %$options; $in->ask_from(N("Mount options"), '', [ @@ -967,9 +967,10 @@ sub Options { { label => N("Various"), val => \$unknown, advanced => 1 }, ], changed => sub { - if ($prev_user != $options->{user}) { - $prev_user = $options->{user}; - $options->{$_} = $options->{user} foreach @$user_implies; + if (my $user = find { $prev_options{$_} != $options->{$_} } 'users', 'user') { + $options->{$user eq 'user' ? 'users' : 'user'} = 0 if $options->{$user}; # we don't want both user and users + $options->{$_} = $options->{$user} foreach @$user_implies; + %prev_options = %$options; } if ($options->{encrypted}) { # modify $part->{options} for the check diff --git a/perl-install/fs/mount_options.pm b/perl-install/fs/mount_options.pm index e31db1653..608c830a9 100644 --- a/perl-install/fs/mount_options.pm +++ b/perl-install/fs/mount_options.pm @@ -48,8 +48,8 @@ sub unpack { my %options = map { $_ => '' } keys %$non_defaults; my @unknown; foreach (split(",", $packed_options)) { - if ($_ eq 'user') { - $options{$_} = 1 foreach 'user', @$user_implies; + if (member($_, 'user', 'users')) { + $options{$_} = 1 foreach $_, @$user_implies; } elsif (exists $non_defaults->{$_}) { $options{$_} = 1; } elsif ($defaults->{$_}) { @@ -84,8 +84,9 @@ sub pack_ { push @l, 'umask=' . min(@umasks); } - if (delete $options->{user}) { - push @l, 'user'; + if (my $user = find { delete $options->{$_} } 'users', 'user') { + push @l, $user; + delete $options->{user}; foreach (@$user_implies) { if (!delete $options->{$_}) { # overriding @@ -134,11 +135,11 @@ have suidperl(1) installed.)"), 'supermount' => '', - 'user' => N("Allow an ordinary user to mount the file system. The + 'users' => N("Allow an ordinary user to mount the file system. The name of the mounting user is written to mtab so that he can unmount the file system again. This option implies the options noexec, nosuid, and nodev (unless overridden by subsequent options, as in the option line -user,exec,dev,suid )."), +user,exec,dev,suid )."), 'usrquota' => N("Enable user disk quota accounting, and optionally enforce limits"), @@ -228,7 +229,7 @@ sub set_default { }); } if (fs::type::can_be_this_fs_type($part, 'iso9660')) { - put_in_hash($options, { user => 1, noexec => 0, 'iocharset=' => $opts{iocharset} }); + put_in_hash($options, { users => 1, noexec => 0, 'iocharset=' => $opts{iocharset} }); } if ($part->{fs_type} eq 'reiserfs') { $options->{notail} = 1; -- cgit v1.2.1