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.pm19
1 files changed, 19 insertions, 0 deletions
diff --git a/perl-install/Xconfig/main.pm b/perl-install/Xconfig/main.pm
index 0e9f335c5..546ae6e64 100644
--- a/perl-install/Xconfig/main.pm
+++ b/perl-install/Xconfig/main.pm
@@ -140,6 +140,25 @@ sub configure_chooser {
'config_changed';
}
+sub configure_everything_or_configure_chooser {
+ my ($in, $options, $auto, $keyboard, $mouse) = @_;
+ my $raw_X = Xconfig::xfree->read;
+ my $default = Xconfig::default::configure($keyboard, $mouse);
+ my $has_conf = @{$raw_X->{xfree3}} || @{$raw_X->{xfree4}};
+ $raw_X->{xfree3} = $default->{xfree3} if !@{$raw_X->{xfree3}};
+ $raw_X->{xfree4} = $default->{xfree4} if !@{$raw_X->{xfree4}};
+
+ return $raw_X if $has_conf && $auto;
+
+ if ($has_conf) {
+ Xconfig::main::configure_chooser($in, $raw_X, $in->do_pkgs, $options) or return;
+ } else {
+ Xconfig::main::configure_everything($in, $raw_X, $in->do_pkgs, $auto, $options) or return;
+ }
+ $raw_X;
+}
+
+
sub may_write {
my ($in, $raw_X, $X, $ok) = @_;