summaryrefslogtreecommitdiffstats
path: root/perl-install/Xconfig/main.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/Xconfig/main.pm')
-rw-r--r--perl-install/Xconfig/main.pm11
1 files changed, 9 insertions, 2 deletions
diff --git a/perl-install/Xconfig/main.pm b/perl-install/Xconfig/main.pm
index f1ad91f41..a794f3297 100644
--- a/perl-install/Xconfig/main.pm
+++ b/perl-install/Xconfig/main.pm
@@ -159,10 +159,17 @@ sub configure_chooser {
sub configure_everything_or_configure_chooser {
my ($in, $options, $auto, $o_keyboard, $o_mouse) = @_;
- my $raw_X = Xconfig::xfree->read;
+ my $raw_X = eval { Xconfig::xfree->read };
+
+ if (!$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;
+ $raw_X = [];
+ }
if (is_empty_array_ref($raw_X)) {
- $raw_X = Xconfig::default::configure($o_keyboard, $o_mouse);
+ $raw_X = Xconfig::default::configure($in->do_pkgs, $o_keyboard, $o_mouse);
Xconfig::main::configure_everything($in, $raw_X, $in->do_pkgs, $auto, $options) or return;
} else {
Xconfig::main::configure_chooser($in, $raw_X, $in->do_pkgs, $options) or return if !$auto;