diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2004-02-05 13:34:08 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2004-02-05 13:34:08 +0000 |
commit | 702d47173101dd8bb132cb22170f38bf82b55344 (patch) | |
tree | 27d22d6f80b0693281dc50ada5a64bee7a2e6421 /perl-install/Xconfig/main.pm | |
parent | 8b346ef435ed5dd491b2e49a278b5b746e6dd142 (diff) | |
download | drakx-702d47173101dd8bb132cb22170f38bf82b55344.tar drakx-702d47173101dd8bb132cb22170f38bf82b55344.tar.gz drakx-702d47173101dd8bb132cb22170f38bf82b55344.tar.bz2 drakx-702d47173101dd8bb132cb22170f38bf82b55344.tar.xz drakx-702d47173101dd8bb132cb22170f38bf82b55344.zip |
- add ->prepare_write to allow comparing raw_X's
- ensure "config_changed" is returned only if the config file really changed
Diffstat (limited to 'perl-install/Xconfig/main.pm')
-rw-r--r-- | perl-install/Xconfig/main.pm | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/perl-install/Xconfig/main.pm b/perl-install/Xconfig/main.pm index 3dd95f195..1e11b2b49 100644 --- a/perl-install/Xconfig/main.pm +++ b/perl-install/Xconfig/main.pm @@ -16,9 +16,14 @@ use any; sub configure_monitor { my ($in, $raw_X) = @_; + my $before = $raw_X->prepare_write; Xconfig::monitor::configure($in, $raw_X) or return; - $raw_X->write; - 'config_changed'; + if ($raw_X->prepare_write ne $before) { + $raw_X->write; + 'config_changed'; + } else { + ''; + } } sub configure_resolution { @@ -26,9 +31,14 @@ sub configure_resolution { my $card = Xconfig::card::from_raw_X($raw_X); my $monitor = Xconfig::monitor::from_raw_X($raw_X); + my $before = $raw_X->prepare_write; Xconfig::resolution_and_depth::configure($in, $raw_X, $card, $monitor) or return; - $raw_X->write; - 'config_changed'; + if ($raw_X->prepare_write ne $before) { + $raw_X->write; + 'config_changed'; + } else { + ''; + } } @@ -134,11 +144,15 @@ sub configure_chooser { monitor => $raw_X->get_monitors && Xconfig::monitor::from_raw_X($raw_X), resolution => scalar eval { $raw_X->get_resolution }, }; - my ($ok, $modified) = configure_chooser_raw($in, $raw_X, $do_pkgs, $options, $X); - - $modified && may_write($in, $raw_X, $X, $ok) or return; + my $before = $raw_X->prepare_write; + my ($ok) = configure_chooser_raw($in, $raw_X, $do_pkgs, $options, $X); - 'config_changed'; + if ($raw_X->prepare_write ne $before) { + may_write($in, $raw_X, $X, $ok) or return; + 'config_changed'; + } else { + ''; + } } sub configure_everything_or_configure_chooser { |