# Select and install an X server -*-perl-*-

$xserver = "";

sub x_reset {
    $xserver = "";
    $chipset = "";
}

sub config_x {
    local ( $ret );

    $ret = 1;
    if ($xinstalled) {
	if (-f "/bootdisk/defaults/XF86Config") {
	    open(FD, "</bootdisk/defaults/XF86Config");
	    open(OFD, ">$fsmount/etc/X11/XF86Config");
	    while (<FD>) {
		print OFD $_;
	    }
	    close(FD);
	    close(OFD);
	    unlink("$fsmount/etc/X11/X");
	    symlink("../../usr/X11R6/bin/XF86_$xserver", "$fsmount/etc/X11/X");
	    unlink("$fsmount/usr/X11R6/bin/X");
	    symlink("../../../etc/X11/X", "$fsmount/usr/X11R6/bin/X");
	    $ret = 1;
	} else {
	    if ($installsource eq "ftp" || $installsource eq "floppy") {
		unlink("/ramdisk/usr/X11R6");
		symlink("$fsmount/usr/X11R6", "/ramdisk/usr/X11R6");
	    }
	    if (&invoke("Xconfigurator $xserver $mousetype $fsmount")) {
		$ret = 0;
	    } else {
		$ret = 1;
	    }
	    unlink("$fsmount/etc/X");
	}
	unlink("$fsmount/etc/X11/X");
	symlink("../../usr/X11R6/bin/XF86_$xserver", "$fsmount/etc/X11/X");
	unlink("$fsmount/usr/X11R6/bin/X");
	symlink("../../../etc/X11/X", "$fsmount/usr/X11R6/bin/X");
    }
    return $ret;
}

sub select_x_server {

    if ((! $force_config) && (-f "/bootdisk/defaults/xsetup")) {
        require "/bootdisk/defaults/xsetup";
        return 1;
    }

    &rhs_menu("X Configuration",
<<EOM
>
Which type of video card you you have?
> 
EOM
	      , 60, 11,
	      "VGA16", "Generic VGA",
	      "SVGA", "Generic SVGA",
	      "Mach8", "ATI Mach8 chipset",
	      "Mach32", "ATI Mach32 chipset",
	      "Mach64", "ATI Mach64 chipset",
	      "8514", "IBM 8514/A chipset",
	      "S3", "S3 chipset",
	      "AGX", "AGX/XGA",
	      "P9000", "Weitek Power 9000",
	      "W32", "ET4000/W32[i,p]",
	      "Mono", "Monochrome card");

    $xserver = $dialog_result;
    return 1;
}

################################
1;

