--- Xautoconfig.c.old 2004-10-07 21:07:46.410894808 +0200 +++ Xautoconfig.c 2004-10-07 21:06:58.168228808 +0200 @@ -1,5 +1,6 @@ -/* Xautoconfig: versatile XF86Config creation tool for powerpc +/* Xautoconfig: versatile XF86Config/xorg.conf creation tool for powerpc * + * Copyright (C) 2004 Matt Jarjoura * Copyright (C) 2002-2003 Dan Burcaw * Copyright (C) 1999-2001 Tom Rini * @@ -33,6 +34,8 @@ extern void usage(); extern char * macMachineType(void); +char XorgTest(void); + struct monitor_sync { int h_min; @@ -41,6 +44,21 @@ int v_max; }; +/* Gentoo Likes Color, so I decided to add some to this tiny utility + since this is a gentoo specific application */ + +#define GENTOO_COLOR + +#ifdef GENTOO_COLOR + #define GENTOO_BOLD "\x1b[01m" + #define GENTOO_RESET "\x1b[0m" + #define GENTOO_RED "\x1b[31;06m" +#else + #define GENTOO_BOLD "" + #define GENTOO_RESET "" + #define GENTOO_RED "" +#endif + int main(int argc, char **argv) { FILE * f; int i, depth, fd; @@ -51,6 +69,8 @@ unsigned int htotal, vtotal; char manufacturer[4]; + char xorg = 0; + struct monitor_sync sync; struct fb_fix_screeninfo fix; struct fb_var_screeninfo var; @@ -72,8 +92,11 @@ close(fd); + printf("%sXautoconfig: Release 0.22.[Gentoo] %s\n\n", GENTOO_BOLD, GENTOO_RESET); + if (rc) { - fprintf(stderr, "Can't access %s. Exiting.\n", name); + fprintf(stderr, "%sCan't access %s. Exiting.%s\n", + GENTOO_RED, name, GENTOO_RESET); return -1; } @@ -189,18 +212,48 @@ return -1;; } } else { - /* Let's be nice and backup an existing XF86Config */ - if ((f = fopen("/etc/X11/XF86Config", "r"))) { - system("mv /etc/X11/XF86Config /etc/X11/XF86Config.xautoconfig"); + + /* Test to see if it's xorg or XFree86 */ + if (XorgTest()) + { + xorg = 0; /* false, using XF86Config */ + + /* Let's be nice and backup an existing XF86Config */ + if ((f = fopen("/etc/X11/XF86Config", "r"))) + { + fclose(f); + printf("XF86Config found, moving to XF86Config.orig...\n"); + system("mv /etc/X11/XF86Config /etc/X11/XF86Config.orig"); + } + + if (!(f = fopen("/etc/X11/XF86Config", "w"))) + { + fprintf(stderr, "%sCan't write to /etc/X11/XF86Config. Exiting.%s\n", + GENTOO_RED, GENTOO_RESET); + return -1; + } } + else + { + xorg = 1; /* true, using xorg.conf */ + + /* Let's be nice and backup an existing XF86Config */ + if ((f = fopen("/etc/X11/xorg.conf", "r"))) + { + fclose(f); + printf("xorg.conf found, moving to xorg.conf.orig...\n"); + system("mv /etc/X11/xorg.conf /etc/X11/xorg.conf.orig"); + } - if (!(f = fopen("/etc/X11/XF86Config", "w"))) { - fprintf(stderr, "Can't write to /etc/X11/XF86Config. Exiting.\n"); - return -1;; + if (!(f = fopen("/etc/X11/xorg.conf", "w"))) + { + fprintf(stderr, "%sCan't write to /etc/X11/xorg.conf. Exiting.%s\n", + GENTOO_RED, GENTOO_RESET); + return -1; + } } } - /*** BEGIN XF86Config ***/ fprintf(f, "%s", header); @@ -208,7 +261,7 @@ if (anaconda) fprintf(f, "%s", fontpath_anaconda); else - fprintf(f, "%s", fontpath); + fprintf(f, "%s", fontpath_gentoo); /* modules section */ fprintf(f, "%s", modules_section); @@ -402,7 +455,26 @@ if (anaconda) fprintf(stdout, "Wrote /tmp/XF86Config.test\n"); else - fprintf(stdout, "Wrote /etc/X11/XF86Config\n"); - + { + if (xorg) + fprintf(stdout, "Wrote /etc/X11/xorg.conf %s\n", GENTOO_RESET); + else + fprintf(stdout, "Wrote /etc/X11/XF86Config %s\n", GENTOO_RESET); + } + return 0; } + +/** + * @return char true if running X.org, false XFree86 + */ +char XorgTest(void) +{ + FILE *f; + + if (!(f = fopen("/usr/X11R6/bin/Xorg", "r"))) + return -1; + else + return 0; +} +