summaryrefslogtreecommitdiffstats
path: root/perl-install/Xconfig
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2005-03-22 16:27:33 +0000
committerPascal Rigaux <pixel@mandriva.com>2005-03-22 16:27:33 +0000
commitacddb352ae4cf5d0d93449843f29ebd61f530809 (patch)
tree246cbd9da50d95b8727a3f0f328543c49c01a1f1 /perl-install/Xconfig
parentbb895bbaadb5b4e5132bfb28b5f4ee68eae812cd (diff)
downloaddrakx-acddb352ae4cf5d0d93449843f29ebd61f530809.tar
drakx-acddb352ae4cf5d0d93449843f29ebd61f530809.tar.gz
drakx-acddb352ae4cf5d0d93449843f29ebd61f530809.tar.bz2
drakx-acddb352ae4cf5d0d93449843f29ebd61f530809.tar.xz
drakx-acddb352ae4cf5d0d93449843f29ebd61f530809.zip
try a little harder to know if we must write the config file.
this is still not enough though
Diffstat (limited to 'perl-install/Xconfig')
-rw-r--r--perl-install/Xconfig/main.pm6
-rw-r--r--perl-install/Xconfig/xfree.pm9
2 files changed, 9 insertions, 6 deletions
diff --git a/perl-install/Xconfig/main.pm b/perl-install/Xconfig/main.pm
index 3b1189e79..724dc111f 100644
--- a/perl-install/Xconfig/main.pm
+++ b/perl-install/Xconfig/main.pm
@@ -16,8 +16,7 @@ use any;
sub configure_monitor {
my ($in) = @_;
- my $raw_X = Xconfig::xfree->read;
- my $before = $raw_X->prepare_write;
+ my ($raw_X, $before) = Xconfig::xfree->read_and_prepare_write;
Xconfig::monitor::configure($in, $raw_X, int($raw_X->get_devices)) or return;
if ($raw_X->prepare_write ne $before) {
$raw_X->write;
@@ -30,12 +29,11 @@ sub configure_monitor {
sub configure_resolution {
my ($in) = @_;
- my $raw_X = Xconfig::xfree->read;
+ my ($raw_X, $before) = Xconfig::xfree->read_and_prepare_write;
my $X = {
card => Xconfig::card::from_raw_X($raw_X),
monitors => [ $raw_X->get_monitors ],
};
- my $before = $raw_X->prepare_write;
$X->{resolution} = Xconfig::resolution_and_depth::configure($in, $raw_X, $X->{card}, $X->{monitors}) or return;
if ($raw_X->prepare_write ne $before) {
&write($raw_X, $X);
diff --git a/perl-install/Xconfig/xfree.pm b/perl-install/Xconfig/xfree.pm
index d1d45e406..eadceda3f 100644
--- a/perl-install/Xconfig/xfree.pm
+++ b/perl-install/Xconfig/xfree.pm
@@ -19,15 +19,20 @@ sub _conf_files() {
################################################################################
# I/O ##########################################################################
################################################################################
-sub read {
+sub read_and_prepare_write {
my ($class) = @_;
my $file = find { -f $_ } _conf_files();
my $raw_X = $class->new(Xconfig::parse::read_XF86Config($file));
+ my $before = $raw_X->prepare_write;
if (my ($Keyboard) = $raw_X->get_InputDevices('Keyboard')) {
$Keyboard->{Driver}{val} = 'keyboard';
}
- $raw_X;
+ $raw_X, $before;
+}
+sub read {
+ my ($class) = @_;
+ first(read_and_prepare_write($class));
}
sub write {
my ($raw_X, $o_file) = @_;