From f2e596dd02dfdb0bbe2b5b25dcc58ac7f9c027cd Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Sun, 16 Jan 2005 15:50:21 +0000 Subject: when reading an existing X config file, ensure it is not too bad, otherwise propose to start from scratch (bugzilla #8548) --- perl-install/Xconfig/main.pm | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/perl-install/Xconfig/main.pm b/perl-install/Xconfig/main.pm index a3398c80f..e53ce0caa 100644 --- a/perl-install/Xconfig/main.pm +++ b/perl-install/Xconfig/main.pm @@ -160,7 +160,7 @@ sub configure_everything_or_configure_chooser { my ($in, $options, $auto, $o_keyboard, $o_mouse) = @_; my $raw_X = eval { Xconfig::xfree->read }; - if (!$raw_X) { + if (!$raw_X || !is_valid($raw_X)) { log::l("ERROR: bad X config file $@"); $in->ask_okcancel('', N("Your Xorg configuration file is broken, we will ignore it.")) or return; @@ -215,6 +215,16 @@ sub export_to_install_X { $::o->{X}{Xinerama} = 1 if $X->{card}{Xinerama}; } +sub is_valid { + my ($raw_X) = @_; + + my %sections = map { + my @l = $raw_X->get_Sections($_) or return; + $_ => \@l; + } qw(Files InputDevice Monitor Device Screen ServerLayout); + + $sections{Files}[0]{FontPath}; +} #- most usefull XFree86-4.0.1 server options. Default values is the first ones. our @options_serverflags = ( -- cgit v1.2.1