summaryrefslogtreecommitdiff
path: root/hw/xwin/winprocarg.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xwin/winprocarg.c')
-rw-r--r--hw/xwin/winprocarg.c1465
1 files changed, 795 insertions, 670 deletions
diff --git a/hw/xwin/winprocarg.c b/hw/xwin/winprocarg.c
index 0f789f09d..86ad3e0fd 100644
--- a/hw/xwin/winprocarg.c
+++ b/hw/xwin/winprocarg.c
@@ -31,6 +31,10 @@ from The Open Group.
#include <xwin-config.h>
#endif
+#ifdef HAVE_SYS_UTSNAME_H
+#include <sys/utsname.h>
+#endif
+
#include <../xfree86/common/xorgVersion.h>
#include "win.h"
#include "winconfig.h"
@@ -42,8 +46,8 @@ from The Open Group.
*/
#ifdef XWIN_CLIPBOARD
-extern Bool g_fUnicodeClipboard;
-extern Bool g_fClipboard;
+extern Bool g_fUnicodeClipboard;
+extern Bool g_fClipboard;
#endif
/*
@@ -51,13 +55,13 @@ extern Bool g_fClipboard;
*/
void
- winLogCommandLine(int argc, char *argv[]);
+winLogCommandLine (int argc, char *argv[]);
void
- winLogVersionInfo(void);
+winLogVersionInfo (void);
#ifdef DDXOSVERRORF
-void OsVendorVErrorF(const char *pszFormat, va_list va_args);
+void OsVendorVErrorF (const char *pszFormat, va_list va_args);
#endif
/*
@@ -70,125 +74,122 @@ static winScreenInfo defaultScreenInfo;
static void
winInitializeScreenDefaults(void)
{
- DWORD dwWidth, dwHeight;
- static Bool fInitializedScreenDefaults = FALSE;
+ DWORD dwWidth, dwHeight;
+ static Bool fInitializedScreenDefaults = FALSE;
- /* Bail out early if default screen has already been initialized */
- if (fInitializedScreenDefaults)
- return;
+ /* Bail out early if default screen has already been initialized */
+ if (fInitializedScreenDefaults)
+ return;
- /* Zero the memory used for storing the screen info */
- memset(&defaultScreenInfo, 0, sizeof(winScreenInfo));
+ /* Zero the memory used for storing the screen info */
+ memset(&defaultScreenInfo, 0, sizeof(winScreenInfo));
- /* Get default width and height */
- /*
- * NOTE: These defaults will cause the window to cover only
- * the primary monitor in the case that we have multiple monitors.
- */
- dwWidth = GetSystemMetrics(SM_CXSCREEN);
- dwHeight = GetSystemMetrics(SM_CYSCREEN);
+ /* Get default width and height */
+ /*
+ * NOTE: These defaults will cause the window to cover only
+ * the primary monitor in the case that we have multiple monitors.
+ */
+ dwWidth = GetSystemMetrics (SM_CXSCREEN);
+ dwHeight = GetSystemMetrics (SM_CYSCREEN);
winErrorFVerb(2,
"winInitializeScreenDefaults - primary monitor w %d h %d\n",
(int) dwWidth, (int) dwHeight);
- /* Set a default DPI, if no '-dpi' option was used */
+ /* Set a default DPI, if no '-dpi' option was used */
if (monitorResolution == 0) {
- HDC hdc = GetDC(NULL);
+ HDC hdc = GetDC(NULL);
if (hdc) {
- int dpiX = GetDeviceCaps(hdc, LOGPIXELSX);
- int dpiY = GetDeviceCaps(hdc, LOGPIXELSY);
+ int dpiX = GetDeviceCaps(hdc, LOGPIXELSX);
+ int dpiY = GetDeviceCaps(hdc, LOGPIXELSY);
- winErrorFVerb(2,
- "winInitializeDefaultScreens - native DPI x %d y %d\n",
- dpiX, dpiY);
- monitorResolution = dpiY;
- ReleaseDC(NULL, hdc);
+ winErrorFVerb(2, "winInitializeScreenDefaults - native DPI x %d y %d\n", dpiX, dpiY);
+ monitorResolution = dpiY;
+ ReleaseDC(NULL, hdc);
}
- else {
- winErrorFVerb(1,
- "winInitializeDefaultScreens - Failed to retrieve native DPI, falling back to default of %d DPI\n",
- WIN_DEFAULT_DPI);
- monitorResolution = WIN_DEFAULT_DPI;
+ else
+ {
+ winErrorFVerb(1, "winInitializeScreenDefaults - Failed to retrieve native DPI, falling back to default of %d DPI\n", WIN_DEFAULT_DPI);
+ monitorResolution = WIN_DEFAULT_DPI;
}
}
- defaultScreenInfo.iMonitor = 1;
- defaultScreenInfo.dwWidth = dwWidth;
- defaultScreenInfo.dwHeight = dwHeight;
- defaultScreenInfo.dwUserWidth = dwWidth;
- defaultScreenInfo.dwUserHeight = dwHeight;
+ defaultScreenInfo.iMonitor = 1;
+ defaultScreenInfo.hMonitor = MonitorFromWindow(NULL, MONITOR_DEFAULTTOPRIMARY);
+ defaultScreenInfo.dwWidth = dwWidth;
+ defaultScreenInfo.dwHeight = dwHeight;
+ defaultScreenInfo.dwUserWidth = dwWidth;
+ defaultScreenInfo.dwUserHeight = dwHeight;
defaultScreenInfo.fUserGaveHeightAndWidth =
WIN_DEFAULT_USER_GAVE_HEIGHT_AND_WIDTH;
- defaultScreenInfo.fUserGavePosition = FALSE;
- defaultScreenInfo.dwBPP = WIN_DEFAULT_BPP;
- defaultScreenInfo.dwClipUpdatesNBoxes = WIN_DEFAULT_CLIP_UPDATES_NBOXES;
+ defaultScreenInfo.fUserGavePosition = FALSE;
+ defaultScreenInfo.dwBPP = WIN_DEFAULT_BPP;
+ defaultScreenInfo.dwClipUpdatesNBoxes = WIN_DEFAULT_CLIP_UPDATES_NBOXES;
#ifdef XWIN_EMULATEPSEUDO
- defaultScreenInfo.fEmulatePseudo = WIN_DEFAULT_EMULATE_PSEUDO;
+ defaultScreenInfo.fEmulatePseudo = WIN_DEFAULT_EMULATE_PSEUDO;
#endif
- defaultScreenInfo.dwRefreshRate = WIN_DEFAULT_REFRESH;
- defaultScreenInfo.pfb = NULL;
- defaultScreenInfo.fFullScreen = FALSE;
- defaultScreenInfo.fDecoration = TRUE;
+ defaultScreenInfo.dwRefreshRate = WIN_DEFAULT_REFRESH;
+ defaultScreenInfo.pfb = NULL;
+ defaultScreenInfo.fFullScreen = FALSE;
+ defaultScreenInfo.fDecoration = TRUE;
#ifdef XWIN_MULTIWINDOWEXTWM
- defaultScreenInfo.fMWExtWM = FALSE;
- defaultScreenInfo.fInternalWM = FALSE;
+ defaultScreenInfo.fMWExtWM = FALSE;
+ defaultScreenInfo.fInternalWM = FALSE;
#endif
- defaultScreenInfo.fRootless = FALSE;
+ defaultScreenInfo.fRootless = FALSE;
#ifdef XWIN_MULTIWINDOW
- defaultScreenInfo.fMultiWindow = FALSE;
+ defaultScreenInfo.fMultiWindow = FALSE;
#endif
#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM)
- defaultScreenInfo.fMultiMonitorOverride = FALSE;
+ defaultScreenInfo.fMultiMonitorOverride = FALSE;
#endif
- defaultScreenInfo.fMultipleMonitors = FALSE;
- defaultScreenInfo.fLessPointer = FALSE;
- defaultScreenInfo.iResizeMode = notAllowed;
- defaultScreenInfo.fNoTrayIcon = FALSE;
- defaultScreenInfo.iE3BTimeout = WIN_E3B_DEFAULT;
- defaultScreenInfo.fUseWinKillKey = WIN_DEFAULT_WIN_KILL;
- defaultScreenInfo.fUseUnixKillKey = WIN_DEFAULT_UNIX_KILL;
- defaultScreenInfo.fIgnoreInput = FALSE;
- defaultScreenInfo.fExplicitScreen = FALSE;
-
- /* Note that the default screen has been initialized */
- fInitializedScreenDefaults = TRUE;
+ defaultScreenInfo.fMultipleMonitors = FALSE;
+ defaultScreenInfo.fLessPointer = FALSE;
+ defaultScreenInfo.iResizeMode = resizeWithRandr;
+ defaultScreenInfo.fNoTrayIcon = FALSE;
+ defaultScreenInfo.iE3BTimeout = WIN_E3B_DEFAULT;
+ defaultScreenInfo.fUseWinKillKey = WIN_DEFAULT_WIN_KILL;
+ defaultScreenInfo.fUseUnixKillKey = WIN_DEFAULT_UNIX_KILL;
+ defaultScreenInfo.fIgnoreInput = FALSE;
+ defaultScreenInfo.fExplicitScreen = FALSE;
+
+ /* Note that the default screen has been initialized */
+ fInitializedScreenDefaults = TRUE;
}
static void
winInitializeScreen(int i)
{
- winErrorFVerb(2, "winInitializeScreen - %d\n", i);
+ winErrorFVerb (3, "winInitializeScreen - %d\n",i);
- /* Initialize default screen values, if needed */
- winInitializeScreenDefaults();
+ /* Initialize default screen values, if needed */
+ winInitializeScreenDefaults();
- /* Copy the default screen info */
- g_ScreenInfo[i] = defaultScreenInfo;
+ /* Copy the default screen info */
+ g_ScreenInfo[i] = defaultScreenInfo;
- /* Set the screen number */
- g_ScreenInfo[i].dwScreen = i;
+ /* Set the screen number */
+ g_ScreenInfo[i].dwScreen = i;
}
void
winInitializeScreens(int maxscreens)
{
- int i;
-
- winErrorFVerb(2, "winInitializeScreens - %i\n", maxscreens);
+ int i;
+ winErrorFVerb (3, "winInitializeScreens - %i\n", maxscreens);
if (maxscreens > g_iNumScreens) {
- /* Reallocate the memory for DDX-specific screen info */
+ /* Reallocate the memory for DDX-specific screen info */
g_ScreenInfo =
realloc(g_ScreenInfo, maxscreens * sizeof(winScreenInfo));
- /* Set default values for any new screens */
- for (i = g_iNumScreens; i < maxscreens; i++)
- winInitializeScreen(i);
+ /* Set default values for any new screens */
+ for (i = g_iNumScreens; i < maxscreens ; i++)
+ winInitializeScreen(i);
- /* Keep a count of the number of screens */
- g_iNumScreens = maxscreens;
+ /* Keep a count of the number of screens */
+ g_iNumScreens = maxscreens;
}
}
@@ -214,112 +215,112 @@ winInitializeScreens(int maxscreens)
/* Check if enough arguments are given for the option */
#define CHECK_ARGS(count) if (i + count >= argc) { UseMsg (); return 0; }
-/* Compare the current option with the string. */
+/* Compare the current option with the string. */
#define IS_OPTION(name) (strcmp (argv[i], name) == 0)
int
-ddxProcessArgument(int argc, char *argv[], int i)
+ddxProcessArgument (int argc, char *argv[], int i)
{
- static Bool s_fBeenHere = FALSE;
- winScreenInfo *screenInfoPtr = NULL;
+ static Bool s_fBeenHere = FALSE;
+ winScreenInfo *screenInfoPtr = NULL;
- /* Initialize once */
+ /* Initialize once */
if (!s_fBeenHere) {
#ifdef DDXOSVERRORF
- /*
- * This initialises our hook into VErrorF () for catching log messages
- * that are generated before OsInit () is called.
- */
- OsVendorVErrorFProc = OsVendorVErrorF;
+ /*
+ * This initialises our hook into VErrorF () for catching log messages
+ * that are generated before OsInit () is called.
+ */
+ OsVendorVErrorFProc = OsVendorVErrorF;
#endif
- s_fBeenHere = TRUE;
+ s_fBeenHere = TRUE;
- /* Initialize only if option is not -help */
- if (!IS_OPTION("-help") && !IS_OPTION("-h") && !IS_OPTION("--help") &&
+ /* Initialize only if option is not -help */
+ if (!IS_OPTION("-help") && !IS_OPTION("-h") && !IS_OPTION("--help") &&
!IS_OPTION("-version") && !IS_OPTION("--version")) {
- /* Log the version information */
- winLogVersionInfo();
-
- /* Log the command line */
- winLogCommandLine(argc, argv);
-
- /*
- * Initialize default screen settings. We have to do this before
- * OsVendorInit () gets called, otherwise we will overwrite
- * settings changed by parameters such as -fullscreen, etc.
- */
- winErrorFVerb(2, "ddxProcessArgument - Initializing default "
- "screens\n");
- winInitializeScreenDefaults();
- }
+ /* Log the version information */
+ winLogVersionInfo ();
+
+ /* Log the command line */
+ winLogCommandLine (argc, argv);
+
+ /*
+ * Initialize default screen settings. We have to do this before
+ * OsVendorInit () gets called, otherwise we will overwrite
+ * settings changed by parameters such as -fullscreen, etc.
+ */
+ winErrorFVerb (2, "ddxProcessArgument - Initializing default "
+ "screens\n");
+ winInitializeScreenDefaults();
+ }
}
#if CYGDEBUG
- winDebug("ddxProcessArgument - arg: %s\n", argv[i]);
+ winDebug ("ddxProcessArgument - arg: %s\n", argv[i]);
#endif
- /*
- * Look for the '-help' and similar options
- */
+ /*
+ * Look for the '-help' and similar options
+ */
if (IS_OPTION("-help") || IS_OPTION("-h") || IS_OPTION("--help")) {
- /* Reset logfile. We don't need that helpmessage in the logfile */
- g_pszLogFile = NULL;
- g_fNoHelpMessageBox = TRUE;
- UseMsg();
- exit(0);
- return 1;
+ /* Reset logfile. We don't need that helpmessage in the logfile */
+ g_pszLogFile = NULL;
+ g_fNoHelpMessageBox = TRUE;
+ UseMsg();
+ exit (0);
+ return 1;
}
if (IS_OPTION("-version") || IS_OPTION("--version")) {
- /* Reset logfile. We don't need that versioninfo in the logfile */
- g_pszLogFile = NULL;
- winLogVersionInfo();
- exit(0);
- return 1;
+ /* Reset logfile. We don't need that versioninfo in the logfile */
+ g_pszLogFile = NULL;
+ winLogVersionInfo ();
+ exit (0);
+ return 1;
}
- /*
- * Look for the '-screen scr_num [width height]' argument
- */
+ /*
+ * Look for the '-screen scr_num [width height]' argument
+ */
if (IS_OPTION("-screen")) {
- int iArgsProcessed = 1;
- int nScreenNum;
- int iWidth, iHeight, iX, iY;
- int iMonitor;
+ int iArgsProcessed = 1;
+ int nScreenNum;
+ int iWidth, iHeight, iX, iY;
+ int iMonitor;
#if CYGDEBUG
winDebug("ddxProcessArgument - screen - argc: %d i: %d\n", argc, i);
#endif
- /* Display the usage message if the argument is malformed */
+ /* Display the usage message if the argument is malformed */
if (i + 1 >= argc) {
- return 0;
- }
+ return 0;
+ }
+
+ /* Grab screen number */
+ nScreenNum = atoi (argv[i + 1]);
- /* Grab screen number */
- nScreenNum = atoi(argv[i + 1]);
-
- /* Validate the specified screen number */
+ /* Validate the specified screen number */
if (nScreenNum < 0) {
- ErrorF("ddxProcessArgument - screen - Invalid screen number %d\n",
- nScreenNum);
- UseMsg();
- return 0;
+ ErrorF ("ddxProcessArgument - screen - Invalid screen number %d\n",
+ nScreenNum);
+ UseMsg ();
+ return 0;
}
- /*
- Initialize default values for any new screens
+ /*
+ Initialize default values for any new screens
- Note that default values can't change after a -screen option is
- seen, so it's safe to do this for each screen as it is introduced
- */
- winInitializeScreens(nScreenNum + 1);
+ Note that default values can't change after a -screen option is
+ seen, so it's safe to do this for each screen as it is introduced
+ */
+ winInitializeScreens(nScreenNum+1);
- /* look for @m where m is monitor number */
+ /* look for @m where m is monitor number */
if (i + 2 < argc && 1 == sscanf(argv[i + 2], "@%d", (int *) &iMonitor)) {
- struct GetMonitorInfoData data;
+ struct GetMonitorInfoData data;
if (!QueryMonitor(iMonitor, &data)) {
ErrorF
@@ -329,81 +330,81 @@ ddxProcessArgument(int argc, char *argv[], int i)
winErrorFVerb(2,
"ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
iMonitor);
- iArgsProcessed = 3;
- g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = FALSE;
- g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
- g_ScreenInfo[nScreenNum].iMonitor = iMonitor;
- g_ScreenInfo[nScreenNum].dwWidth = data.monitorWidth;
- g_ScreenInfo[nScreenNum].dwHeight = data.monitorHeight;
- g_ScreenInfo[nScreenNum].dwUserWidth = data.monitorWidth;
- g_ScreenInfo[nScreenNum].dwUserHeight = data.monitorHeight;
- g_ScreenInfo[nScreenNum].dwInitialX = data.monitorOffsetX;
- g_ScreenInfo[nScreenNum].dwInitialY = data.monitorOffsetY;
- }
+ iArgsProcessed = 3;
+ g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = FALSE;
+ g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
+ g_ScreenInfo[nScreenNum].iMonitor = iMonitor;
+ g_ScreenInfo[nScreenNum].hMonitor = data.monitorHandle;
+ g_ScreenInfo[nScreenNum].dwWidth = data.monitorWidth;
+ g_ScreenInfo[nScreenNum].dwHeight = data.monitorHeight;
+ g_ScreenInfo[nScreenNum].dwUserWidth = data.monitorWidth;
+ g_ScreenInfo[nScreenNum].dwUserHeight = data.monitorHeight;
+ g_ScreenInfo[nScreenNum].dwInitialX = data.monitorOffsetX;
+ g_ScreenInfo[nScreenNum].dwInitialY = data.monitorOffsetY;
+ }
else {
- /* monitor does not exist, error out */
+ /* monitor does not exist, error out */
ErrorF
("ddxProcessArgument - screen - Invalid monitor number %d\n",
- iMonitor);
- UseMsg();
- exit(0);
- return 0;
- }
- }
-
- /* Look for 'WxD' or 'W D' */
- else if (i + 2 < argc
- && 2 == sscanf(argv[i + 2], "%dx%d",
+ iMonitor);
+ UseMsg ();
+ exit (0);
+ return 0;
+ }
+ }
+
+ /* Look for 'WxD' or 'W D' */
+ else if (i + 2 < argc
+ && 2 == sscanf (argv[i + 2], "%dx%d",
(int *) &iWidth, (int *) &iHeight)) {
winErrorFVerb(2,
"ddxProcessArgument - screen - Found ``WxD'' arg\n");
- iArgsProcessed = 3;
- g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = TRUE;
- g_ScreenInfo[nScreenNum].dwWidth = iWidth;
- g_ScreenInfo[nScreenNum].dwHeight = iHeight;
- g_ScreenInfo[nScreenNum].dwUserWidth = iWidth;
- g_ScreenInfo[nScreenNum].dwUserHeight = iHeight;
- /* Look for WxD+X+Y */
- if (2 == sscanf(argv[i + 2], "%*dx%*d+%d+%d",
+ iArgsProcessed = 3;
+ g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = TRUE;
+ g_ScreenInfo[nScreenNum].dwWidth = iWidth;
+ g_ScreenInfo[nScreenNum].dwHeight = iHeight;
+ g_ScreenInfo[nScreenNum].dwUserWidth = iWidth;
+ g_ScreenInfo[nScreenNum].dwUserHeight = iHeight;
+ /* Look for WxD+X+Y */
+ if (2 == sscanf (argv[i + 2], "%*dx%*d+%d+%d",
(int *) &iX, (int *) &iY)) {
winErrorFVerb(2,
"ddxProcessArgument - screen - Found ``X+Y'' arg\n");
- g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
- g_ScreenInfo[nScreenNum].dwInitialX = iX;
- g_ScreenInfo[nScreenNum].dwInitialY = iY;
+ g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
+ g_ScreenInfo[nScreenNum].dwInitialX = iX;
+ g_ScreenInfo[nScreenNum].dwInitialY = iY;
- /* look for WxD+X+Y@m where m is monitor number. take X,Y to be offsets from monitor's root position */
- if (1 == sscanf(argv[i + 2], "%*dx%*d+%*d+%*d@%d",
+ /* look for WxD+X+Y@m where m is monitor number. take X,Y to be offsets from monitor's root position */
+ if (1 == sscanf (argv[i + 2], "%*dx%*d+%*d+%*d@%d",
(int *) &iMonitor)) {
- struct GetMonitorInfoData data;
+ struct GetMonitorInfoData data;
if (!QueryMonitor(iMonitor, &data)) {
ErrorF
("ddxProcessArgument - screen - Querying monitors failed\n");
}
else if (data.bMonitorSpecifiedExists == TRUE) {
- g_ScreenInfo[nScreenNum].iMonitor = iMonitor;
- g_ScreenInfo[nScreenNum].dwInitialX +=
- data.monitorOffsetX;
- g_ScreenInfo[nScreenNum].dwInitialY +=
- data.monitorOffsetY;
- }
+ g_ScreenInfo[nScreenNum].iMonitor = iMonitor;
+ g_ScreenInfo[nScreenNum].hMonitor = data.monitorHandle;
+ g_ScreenInfo[nScreenNum].dwInitialX += data.monitorOffsetX;
+ g_ScreenInfo[nScreenNum].dwInitialY += data.monitorOffsetY;
+ }
else {
- /* monitor does not exist, error out */
+ /* monitor does not exist, error out */
ErrorF
("ddxProcessArgument - screen - Invalid monitor number %d\n",
- iMonitor);
- UseMsg();
- exit(0);
- return 0;
- }
+ iMonitor);
+ UseMsg ();
+ exit (0);
+ return 0;
+ }
- }
- }
+ }
+ }
- /* look for WxD@m where m is monitor number */
+ /* look for WxD@m where m is monitor number */
else if (1 == sscanf(argv[i + 2], "%*dx%*d@%d", (int *) &iMonitor)) {
- struct GetMonitorInfoData data;
+ struct GetMonitorInfoData data;
if (!QueryMonitor(iMonitor, &data)) {
ErrorF
@@ -413,667 +414,682 @@ ddxProcessArgument(int argc, char *argv[], int i)
winErrorFVerb(2,
"ddxProcessArgument - screen - Found Valid ``@Monitor'' = %d arg\n",
iMonitor);
- g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
- g_ScreenInfo[nScreenNum].iMonitor = iMonitor;
- g_ScreenInfo[nScreenNum].dwInitialX = data.monitorOffsetX;
- g_ScreenInfo[nScreenNum].dwInitialY = data.monitorOffsetY;
- }
+ g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
+ g_ScreenInfo[nScreenNum].iMonitor = iMonitor;
+ g_ScreenInfo[nScreenNum].hMonitor = data.monitorHandle;
+ g_ScreenInfo[nScreenNum].dwInitialX = data.monitorOffsetX;
+ g_ScreenInfo[nScreenNum].dwInitialY = data.monitorOffsetY;
+ }
else {
- /* monitor does not exist, error out */
+ /* monitor does not exist, error out */
ErrorF
("ddxProcessArgument - screen - Invalid monitor number %d\n",
- iMonitor);
- UseMsg();
- exit(0);
- return 0;
- }
-
- }
- }
+ iMonitor);
+ UseMsg ();
+ exit (0);
+ return 0;
+ }
+
+ }
+ }
else if (i + 3 < argc && 1 == sscanf(argv[i + 2], "%d", (int *) &iWidth)
&& 1 == sscanf(argv[i + 3], "%d", (int *) &iHeight)) {
winErrorFVerb(2,
"ddxProcessArgument - screen - Found ``W D'' arg\n");
- iArgsProcessed = 4;
- g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = TRUE;
- g_ScreenInfo[nScreenNum].dwWidth = iWidth;
- g_ScreenInfo[nScreenNum].dwHeight = iHeight;
- g_ScreenInfo[nScreenNum].dwUserWidth = iWidth;
- g_ScreenInfo[nScreenNum].dwUserHeight = iHeight;
+ iArgsProcessed = 4;
+ g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = TRUE;
+ g_ScreenInfo[nScreenNum].dwWidth = iWidth;
+ g_ScreenInfo[nScreenNum].dwHeight = iHeight;
+ g_ScreenInfo[nScreenNum].dwUserWidth = iWidth;
+ g_ScreenInfo[nScreenNum].dwUserHeight = iHeight;
if (i + 5 < argc && 1 == sscanf(argv[i + 4], "%d", (int *) &iX)
&& 1 == sscanf(argv[i + 5], "%d", (int *) &iY)) {
winErrorFVerb(2,
"ddxProcessArgument - screen - Found ``X Y'' arg\n");
- iArgsProcessed = 6;
- g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
- g_ScreenInfo[nScreenNum].dwInitialX = iX;
- g_ScreenInfo[nScreenNum].dwInitialY = iY;
- }
- }
+ iArgsProcessed = 6;
+ g_ScreenInfo[nScreenNum].fUserGavePosition = TRUE;
+ g_ScreenInfo[nScreenNum].dwInitialX = iX;
+ g_ScreenInfo[nScreenNum].dwInitialY = iY;
+ }
+ }
else {
winErrorFVerb(2,
"ddxProcessArgument - screen - Did not find size arg. "
- "dwWidth: %d dwHeight: %d\n",
- (int) g_ScreenInfo[nScreenNum].dwWidth,
- (int) g_ScreenInfo[nScreenNum].dwHeight);
- iArgsProcessed = 2;
- g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = FALSE;
- }
-
- /* Flag that this screen was explicity specified by the user */
- g_ScreenInfo[nScreenNum].fExplicitScreen = TRUE;
-
- /*
- * Keep track of the last screen number seen, as parameters seen
- * before a screen number apply to all screens, whereas parameters
- * seen after a screen number apply to that screen number only.
- */
- iLastScreen = nScreenNum;
-
- return iArgsProcessed;
+ "dwWidth: %d dwHeight: %d\n",
+ (int) g_ScreenInfo[nScreenNum].dwWidth,
+ (int) g_ScreenInfo[nScreenNum].dwHeight);
+ iArgsProcessed = 2;
+ g_ScreenInfo[nScreenNum].fUserGaveHeightAndWidth = FALSE;
+ }
+
+ /* Flag that this screen was explicity specified by the user */
+ g_ScreenInfo[nScreenNum].fExplicitScreen = TRUE;
+
+ /*
+ * Keep track of the last screen number seen, as parameters seen
+ * before a screen number apply to all screens, whereas parameters
+ * seen after a screen number apply to that screen number only.
+ */
+ iLastScreen = nScreenNum;
+
+ return iArgsProcessed;
}
- /*
- * Is this parameter attached to a screen or global?
- *
- * If the parameter is for all screens (appears before
- * any -screen option), store it in the default screen
- * info
- *
- * If the parameter is for a single screen (appears
- * after a -screen option), store it in the screen info
- * for that screen
- *
- */
+ /*
+ * Is this parameter attached to a screen or global?
+ *
+ * If the parameter is for all screens (appears before
+ * any -screen option), store it in the default screen
+ * info
+ *
+ * If the parameter is for a single screen (appears
+ * after a -screen option), store it in the screen info
+ * for that screen
+ *
+ */
if (iLastScreen == -1) {
- screenInfoPtr = &defaultScreenInfo;
+ screenInfoPtr = &defaultScreenInfo;
}
else {
- screenInfoPtr = &(g_ScreenInfo[iLastScreen]);
+ screenInfoPtr = &(g_ScreenInfo[iLastScreen]);
}
- /*
- * Look for the '-engine n' argument
- */
+ /*
+ * Look for the '-engine n' argument
+ */
if (IS_OPTION("-engine")) {
- DWORD dwEngine = 0;
- CARD8 c8OnBits = 0;
-
- /* Display the usage message if the argument is malformed */
+ DWORD dwEngine = 0;
+ CARD8 c8OnBits = 0;
+
+ /* Display the usage message if the argument is malformed */
if (++i >= argc) {
- UseMsg();
- return 0;
- }
+ UseMsg ();
+ return 0;
+ }
- /* Grab the argument */
- dwEngine = atoi(argv[i]);
+ /* Grab the argument */
+ dwEngine = atoi (argv[i]);
- /* Count the one bits in the engine argument */
- c8OnBits = winCountBits(dwEngine);
+ /* Count the one bits in the engine argument */
+ c8OnBits = winCountBits (dwEngine);
- /* Argument should only have a single bit on */
+ /* Argument should only have a single bit on */
if (c8OnBits != 1) {
- UseMsg();
- return 0;
- }
-
- screenInfoPtr->dwEnginePreferred = dwEngine;
-
- /* Indicate that we have processed the argument */
- return 2;
+ UseMsg ();
+ return 0;
+ }
+
+ screenInfoPtr->dwEnginePreferred = dwEngine;
+
+ /* Indicate that we have processed the argument */
+ return 2;
}
- /*
- * Look for the '-fullscreen' argument
- */
+ /*
+ * Look for the '-fullscreen' argument
+ */
if (IS_OPTION("-fullscreen")) {
#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM)
- if (!screenInfoPtr->fMultiMonitorOverride)
+ if (!screenInfoPtr->fMultiMonitorOverride)
screenInfoPtr->fMultipleMonitors = FALSE;
#endif
- screenInfoPtr->fFullScreen = TRUE;
+ screenInfoPtr->fFullScreen = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-lesspointer' argument
- */
+ /*
+ * Look for the '-lesspointer' argument
+ */
if (IS_OPTION("-lesspointer")) {
- screenInfoPtr->fLessPointer = TRUE;
+ screenInfoPtr->fLessPointer = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-nodecoration' argument
- */
+ /*
+ * Look for the '-nodecoration' argument
+ */
if (IS_OPTION("-nodecoration")) {
#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM)
- if (!screenInfoPtr->fMultiMonitorOverride)
- screenInfoPtr->fMultipleMonitors = FALSE;
+ if (!screenInfoPtr->fMultiMonitorOverride)
+ screenInfoPtr->fMultipleMonitors = FALSE;
#endif
- screenInfoPtr->fDecoration = FALSE;
+ screenInfoPtr->fDecoration = FALSE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
#ifdef XWIN_MULTIWINDOWEXTWM
- /*
- * Look for the '-mwextwm' argument
- */
+ /*
+ * Look for the '-mwextwm' argument
+ */
if (IS_OPTION("-mwextwm")) {
- if (!screenInfoPtr->fMultiMonitorOverride)
- screenInfoPtr->fMultipleMonitors = TRUE;
- screenInfoPtr->fMWExtWM = TRUE;
+ if (!screenInfoPtr->fMultiMonitorOverride)
+ screenInfoPtr->fMultipleMonitors = TRUE;
+ screenInfoPtr->fMWExtWM = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-internalwm' argument
- */
+ /*
+ * Look for the '-internalwm' argument
+ */
if (IS_OPTION("-internalwm")) {
- if (!screenInfoPtr->fMultiMonitorOverride)
- screenInfoPtr->fMultipleMonitors = TRUE;
- screenInfoPtr->fMWExtWM = TRUE;
- screenInfoPtr->fInternalWM = TRUE;
+ if (!screenInfoPtr->fMultiMonitorOverride)
+ screenInfoPtr->fMultipleMonitors = TRUE;
+ screenInfoPtr->fMWExtWM = TRUE;
+ screenInfoPtr->fInternalWM = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
#endif
- /*
- * Look for the '-rootless' argument
- */
+ /*
+ * Look for the '-rootless' argument
+ */
if (IS_OPTION("-rootless")) {
#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM)
- if (!screenInfoPtr->fMultiMonitorOverride)
- screenInfoPtr->fMultipleMonitors = FALSE;
+ if (!screenInfoPtr->fMultiMonitorOverride)
+ screenInfoPtr->fMultipleMonitors = FALSE;
#endif
- screenInfoPtr->fRootless = TRUE;
+ screenInfoPtr->fRootless = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
#ifdef XWIN_MULTIWINDOW
- /*
- * Look for the '-multiwindow' argument
- */
+ /*
+ * Look for the '-multiwindow' argument
+ */
if (IS_OPTION("-multiwindow")) {
#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM)
- if (!screenInfoPtr->fMultiMonitorOverride)
- screenInfoPtr->fMultipleMonitors = TRUE;
+ if (!screenInfoPtr->fMultiMonitorOverride)
+ screenInfoPtr->fMultipleMonitors = TRUE;
#endif
- screenInfoPtr->fMultiWindow = TRUE;
+ screenInfoPtr->fMultiWindow = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
#endif
- /*
- * Look for the '-multiplemonitors' argument
- */
- if (IS_OPTION("-multiplemonitors")
+ /*
+ * Look for the '-multiplemonitors' argument
+ */
+ if (IS_OPTION ("-multiplemonitors")
|| IS_OPTION("-multimonitors")) {
#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM)
- screenInfoPtr->fMultiMonitorOverride = TRUE;
+ screenInfoPtr->fMultiMonitorOverride = TRUE;
#endif
- screenInfoPtr->fMultipleMonitors = TRUE;
+ screenInfoPtr->fMultipleMonitors = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-nomultiplemonitors' argument
- */
- if (IS_OPTION("-nomultiplemonitors")
+ /*
+ * Look for the '-nomultiplemonitors' argument
+ */
+ if (IS_OPTION ("-nomultiplemonitors")
|| IS_OPTION("-nomultimonitors")) {
#if defined(XWIN_MULTIWINDOW) || defined(XWIN_MULTIWINDOWEXTWM)
- screenInfoPtr->fMultiMonitorOverride = TRUE;
+ screenInfoPtr->fMultiMonitorOverride = TRUE;
#endif
- screenInfoPtr->fMultipleMonitors = FALSE;
+ screenInfoPtr->fMultipleMonitors = FALSE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-scrollbars' argument
- */
+ /*
+ * Look for the '-scrollbars' argument
+ */
if (IS_OPTION("-scrollbars")) {
- screenInfoPtr->iResizeMode = resizeWithScrollbars;
+ screenInfoPtr->iResizeMode = resizeWithScrollbars;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-resize' argument
- */
- if (IS_OPTION("-resize") || IS_OPTION("-noresize") ||
+ /*
+ * Look for the '-resize' argument
+ */
+ if (IS_OPTION ("-resize") || IS_OPTION ("-noresize") ||
(strncmp(argv[i], "-resize=", strlen("-resize=")) == 0)) {
- winResizeMode mode;
+ winResizeMode mode;
+
+ if (IS_OPTION ("-resize"))
+ mode = resizeWithRandr;
+ else if (IS_OPTION ("-noresize"))
+ mode = notAllowed;
+ else if (strncmp(argv[i], "-resize=", strlen("-resize=")) == 0) {
+ char *option = argv[i] + strlen("-resize=");
- if (IS_OPTION("-resize"))
+ if (strcmp(option, "randr") == 0)
mode = resizeWithRandr;
- else if (IS_OPTION("-noresize"))
+ else if (strcmp(option, "scrollbars") == 0)
+ mode = resizeWithScrollbars;
+ else if (strcmp(option, "none") == 0)
mode = notAllowed;
- else if (strncmp(argv[i], "-resize=", strlen("-resize=")) == 0) {
- char *option = argv[i] + strlen("-resize=");
-
- if (strcmp(option, "randr") == 0)
- mode = resizeWithRandr;
- else if (strcmp(option, "scrollbars") == 0)
- mode = resizeWithScrollbars;
- else if (strcmp(option, "none") == 0)
- mode = notAllowed;
else {
ErrorF("ddxProcessArgument - resize - Invalid resize mode %s\n",
option);
- return 0;
+ return 0;
}
}
else {
ErrorF("ddxProcessArgument - resize - Invalid resize option %s\n",
argv[i]);
- return 0;
+ return 0;
}
- screenInfoPtr->iResizeMode = mode;
+ screenInfoPtr->iResizeMode = mode;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
#ifdef XWIN_CLIPBOARD
- /*
- * Look for the '-clipboard' argument
- */
+ /*
+ * Look for the '-clipboard' argument
+ */
if (IS_OPTION("-clipboard")) {
- /* Now the default, we still accept the arg for backwards compatibility */
- g_fClipboard = TRUE;
+ /* Now the default, we still accept the arg for backwards compatibility */
+ g_fClipboard = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-noclipboard' argument
- */
+ /*
+ * Look for the '-noclipboard' argument
+ */
if (IS_OPTION("-noclipboard")) {
- g_fClipboard = FALSE;
+ g_fClipboard = FALSE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
#endif
- /*
- * Look for the '-ignoreinput' argument
- */
+ /*
+ * Look for the '-ignoreinput' argument
+ */
if (IS_OPTION("-ignoreinput")) {
- screenInfoPtr->fIgnoreInput = TRUE;
+ screenInfoPtr->fIgnoreInput = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-emulate3buttons' argument
- */
+ /*
+ * Look for the '-emulate3buttons' argument
+ */
if (IS_OPTION("-emulate3buttons")) {
- int iArgsProcessed = 1;
- int iE3BTimeout = WIN_DEFAULT_E3B_TIME;
+ int iArgsProcessed = 1;
+ int iE3BTimeout = WIN_DEFAULT_E3B_TIME;
- /* Grab the optional timeout value */
+ /* Grab the optional timeout value */
if (i + 1 < argc && 1 == sscanf(argv[i + 1], "%d", &iE3BTimeout)) {
- /* Indicate that we have processed the next argument */
- iArgsProcessed++;
+ /* Indicate that we have processed the next argument */
+ iArgsProcessed++;
}
else {
- /*
- * sscanf () won't modify iE3BTimeout if it doesn't find
- * the specified format; however, I want to be explicit
- * about setting the default timeout in such cases to
- * prevent some programs (me) from getting confused.
- */
- iE3BTimeout = WIN_DEFAULT_E3B_TIME;
- }
-
- screenInfoPtr->iE3BTimeout = iE3BTimeout;
-
- /* Indicate that we have processed this argument */
- return iArgsProcessed;
+ /*
+ * sscanf () won't modify iE3BTimeout if it doesn't find
+ * the specified format; however, I want to be explicit
+ * about setting the default timeout in such cases to
+ * prevent some programs (me) from getting confused.
+ */
+ iE3BTimeout = WIN_DEFAULT_E3B_TIME;
+ }
+
+ screenInfoPtr->iE3BTimeout = iE3BTimeout;
+
+ /* Indicate that we have processed this argument */
+ return iArgsProcessed;
}
- /*
- * Look for the '-noemulate3buttons' argument
- */
+ /*
+ * Look for the '-noemulate3buttons' argument
+ */
if (IS_OPTION("-noemulate3buttons")) {
- screenInfoPtr->iE3BTimeout = WIN_E3B_OFF;
+ screenInfoPtr->iE3BTimeout = WIN_E3B_OFF;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-depth n' argument
- */
+ /*
+ * Look for the '-depth n' argument
+ */
if (IS_OPTION("-depth")) {
- DWORD dwBPP = 0;
-
- /* Display the usage message if the argument is malformed */
+ DWORD dwBPP = 0;
+
+ /* Display the usage message if the argument is malformed */
if (++i >= argc) {
- UseMsg();
- return 0;
- }
+ UseMsg ();
+ return 0;
+ }
- /* Grab the argument */
- dwBPP = atoi(argv[i]);
+ /* Grab the argument */
+ dwBPP = atoi (argv[i]);
- screenInfoPtr->dwBPP = dwBPP;
+ screenInfoPtr->dwBPP = dwBPP;
- /* Indicate that we have processed the argument */
- return 2;
+ /* Indicate that we have processed the argument */
+ return 2;
}
- /*
- * Look for the '-refresh n' argument
- */
+ /*
+ * Look for the '-refresh n' argument
+ */
if (IS_OPTION("-refresh")) {
- DWORD dwRefreshRate = 0;
-
- /* Display the usage message if the argument is malformed */
+ DWORD dwRefreshRate = 0;
+
+ /* Display the usage message if the argument is malformed */
if (++i >= argc) {
- UseMsg();
- return 0;
- }
+ UseMsg ();
+ return 0;
+ }
- /* Grab the argument */
- dwRefreshRate = atoi(argv[i]);
+ /* Grab the argument */
+ dwRefreshRate = atoi (argv[i]);
- screenInfoPtr->dwRefreshRate = dwRefreshRate;
+ screenInfoPtr->dwRefreshRate = dwRefreshRate;
- /* Indicate that we have processed the argument */
- return 2;
+ /* Indicate that we have processed the argument */
+ return 2;
}
- /*
- * Look for the '-clipupdates num_boxes' argument
- */
+ /*
+ * Look for the '-clipupdates num_boxes' argument
+ */
if (IS_OPTION("-clipupdates")) {
- DWORD dwNumBoxes = 0;
-
- /* Display the usage message if the argument is malformed */
+ DWORD dwNumBoxes = 0;
+
+ /* Display the usage message if the argument is malformed */
if (++i >= argc) {
- UseMsg();
- return 0;
- }
+ UseMsg ();
+ return 0;
+ }
- /* Grab the argument */
- dwNumBoxes = atoi(argv[i]);
+ /* Grab the argument */
+ dwNumBoxes = atoi (argv[i]);
- screenInfoPtr->dwClipUpdatesNBoxes = dwNumBoxes;
+ screenInfoPtr->dwClipUpdatesNBoxes = dwNumBoxes;
- /* Indicate that we have processed the argument */
- return 2;
+ /* Indicate that we have processed the argument */
+ return 2;
}
#ifdef XWIN_EMULATEPSEUDO
- /*
- * Look for the '-emulatepseudo' argument
- */
+ /*
+ * Look for the '-emulatepseudo' argument
+ */
if (IS_OPTION("-emulatepseudo")) {
- screenInfoPtr->fEmulatePseudo = TRUE;
+ screenInfoPtr->fEmulatePseudo = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
#endif
- /*
- * Look for the '-nowinkill' argument
- */
+ /*
+ * Look for the '-nowinkill' argument
+ */
if (IS_OPTION("-nowinkill")) {
- screenInfoPtr->fUseWinKillKey = FALSE;
+ screenInfoPtr->fUseWinKillKey = FALSE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-winkill' argument
- */
+ /*
+ * Look for the '-winkill' argument
+ */
if (IS_OPTION("-winkill")) {
- screenInfoPtr->fUseWinKillKey = TRUE;
+ screenInfoPtr->fUseWinKillKey = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-nounixkill' argument
- */
+ /*
+ * Look for the '-nounixkill' argument
+ */
if (IS_OPTION("-nounixkill")) {
- screenInfoPtr->fUseUnixKillKey = FALSE;
+ screenInfoPtr->fUseUnixKillKey = FALSE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-unixkill' argument
- */
+ /*
+ * Look for the '-unixkill' argument
+ */
if (IS_OPTION("-unixkill")) {
- screenInfoPtr->fUseUnixKillKey = TRUE;
+ screenInfoPtr->fUseUnixKillKey = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-notrayicon' argument
- */
+ /*
+ * Look for the '-notrayicon' argument
+ */
if (IS_OPTION("-notrayicon")) {
- screenInfoPtr->fNoTrayIcon = TRUE;
+ screenInfoPtr->fNoTrayIcon = TRUE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-trayicon' argument
- */
+ /*
+ * Look for the '-trayicon' argument
+ */
if (IS_OPTION("-trayicon")) {
- screenInfoPtr->fNoTrayIcon = FALSE;
+ screenInfoPtr->fNoTrayIcon = FALSE;
- /* Indicate that we have processed this argument */
- return 1;
+ /* Indicate that we have processed this argument */
+ return 1;
}
- /*
- * Look for the '-fp' argument
- */
+ /*
+ * Look for the '-fp' argument
+ */
if (IS_OPTION("-fp")) {
- CHECK_ARGS(1);
- g_cmdline.fontPath = argv[++i];
- return 0; /* Let DIX parse this again */
+ CHECK_ARGS (1);
+ g_cmdline.fontPath = argv[++i];
+ return 0; /* Let DIX parse this again */
}
- /*
- * Look for the '-query' argument
- */
+ /*
+ * Look for the '-query' argument
+ */
if (IS_OPTION("-query")) {
- CHECK_ARGS(1);
- g_fXdmcpEnabled = TRUE;
- g_pszQueryHost = argv[++i];
- return 0; /* Let DIX parse this again */
+ CHECK_ARGS (1);
+ g_fXdmcpEnabled = TRUE;
+ g_pszQueryHost = argv[++i];
+ return 0; /* Let DIX parse this again */
}
- /*
- * Look for the '-auth' argument
- */
+ /*
+ * Look for the '-auth' argument
+ */
if (IS_OPTION("-auth")) {
- g_fAuthEnabled = TRUE;
- return 0; /* Let DIX parse this again */
+ g_fAuthEnabled = TRUE;
+ return 0; /* Let DIX parse this again */
}
- /*
- * Look for the '-indirect' or '-broadcast' arguments
- */
- if (IS_OPTION("-indirect")
+ /*
+ * Look for the '-indirect' or '-broadcast' arguments
+ */
+ if (IS_OPTION ("-indirect")
|| IS_OPTION("-broadcast")) {
- g_fXdmcpEnabled = TRUE;
- return 0; /* Let DIX parse this again */
+ g_fXdmcpEnabled = TRUE;
+ return 0; /* Let DIX parse this again */
}
- /*
- * Look for the '-config' argument
- */
- if (IS_OPTION("-config")
+ /*
+ * Look for the '-dpi' argument
+ */
+ if (IS_OPTION("-dpi")) {
+ g_cmdline.customDPI = TRUE;
+ return 0; /* Let DIX parse this again */
+ }
+
+ /*
+ * Look for the '-config' argument
+ */
+ if (IS_OPTION ("-config")
|| IS_OPTION("-xf86config")) {
- CHECK_ARGS(1);
+ CHECK_ARGS (1);
#ifdef XWIN_XF86CONFIG
- g_cmdline.configFile = argv[++i];
+ g_cmdline.configFile = argv[++i];
#else
- winMessageBoxF("The %s option is not supported in this "
- "release.\n"
- "Ignoring this option and continuing.\n",
+ winMessageBoxF ("The %s option is not supported in this "
+ "release.\n"
+ "Ignoring this option and continuing.\n",
MB_ICONINFORMATION, argv[i]);
#endif
- return 2;
+ return 2;
}
- /*
- * Look for the '-configdir' argument
- */
+ /*
+ * Look for the '-configdir' argument
+ */
if (IS_OPTION("-configdir")) {
- CHECK_ARGS(1);
+ CHECK_ARGS (1);
#ifdef XWIN_XF86CONFIG
- g_cmdline.configDir = argv[++i];
+ g_cmdline.configDir = argv[++i];
#else
- winMessageBoxF("The %s option is not supported in this "
- "release.\n"
- "Ignoring this option and continuing.\n",
+ winMessageBoxF ("The %s option is not supported in this "
+ "release.\n"
+ "Ignoring this option and continuing.\n",
MB_ICONINFORMATION, argv[i]);
#endif
- return 2;
+ return 2;
}
- /*
- * Look for the '-keyboard' argument
- */
+ /*
+ * Look for the '-keyboard' argument
+ */
if (IS_OPTION("-keyboard")) {
#ifdef XWIN_XF86CONFIG
- CHECK_ARGS(1);
- g_cmdline.keyboard = argv[++i];
+ CHECK_ARGS (1);
+ g_cmdline.keyboard = argv[++i];
#else
- winMessageBoxF("The -keyboard option is not supported in this "
- "release.\n"
- "Ignoring this option and continuing.\n",
- MB_ICONINFORMATION);
+ winMessageBoxF ("The -keyboard option is not supported in this "
+ "release.\n"
+ "Ignoring this option and continuing.\n",
+ MB_ICONINFORMATION);
#endif
- return 2;
+ return 2;
}
- /*
- * Look for the '-logfile' argument
- */
+ /*
+ * Look for the '-logfile' argument
+ */
if (IS_OPTION("-logfile")) {
- CHECK_ARGS(1);
- g_pszLogFile = argv[++i];
+ CHECK_ARGS (1);
+ g_pszLogFile = argv[++i];
#ifdef RELOCATE_PROJECTROOT
- g_fLogFileChanged = TRUE;
+ g_fLogFileChanged = TRUE;
#endif
- return 2;
+ return 2;
}
- /*
- * Look for the '-logverbose' argument
- */
+ /*
+ * Look for the '-logverbose' argument
+ */
if (IS_OPTION("-logverbose")) {
- CHECK_ARGS(1);
- g_iLogVerbose = atoi(argv[++i]);
- return 2;
+ CHECK_ARGS (1);
+ g_iLogVerbose = atoi(argv[++i]);
+ return 2;
}
#ifdef XWIN_CLIPBOARD
- /*
- * Look for the '-nounicodeclipboard' argument
- */
+ /*
+ * Look for the '-nounicodeclipboard' argument
+ */
if (IS_OPTION("-nounicodeclipboard")) {
- g_fUnicodeClipboard = FALSE;
- /* Indicate that we have processed the argument */
- return 1;
+ g_fUnicodeClipboard = FALSE;
+ /* Indicate that we have processed the argument */
+ return 1;
}
#endif
if (IS_OPTION("-xkbrules")) {
- CHECK_ARGS(1);
- g_cmdline.xkbRules = argv[++i];
- return 2;
+ CHECK_ARGS (1);
+ g_cmdline.xkbRules = argv[++i];
+ return 2;
}
if (IS_OPTION("-xkbmodel")) {
- CHECK_ARGS(1);
- g_cmdline.xkbModel = argv[++i];
- return 2;
+ CHECK_ARGS (1);
+ g_cmdline.xkbModel = argv[++i];
+ return 2;
}
if (IS_OPTION("-xkblayout")) {
- CHECK_ARGS(1);
- g_cmdline.xkbLayout = argv[++i];
- return 2;
+ CHECK_ARGS (1);
+ g_cmdline.xkbLayout = argv[++i];
+ return 2;
}
if (IS_OPTION("-xkbvariant")) {
- CHECK_ARGS(1);
- g_cmdline.xkbVariant = argv[++i];
- return 2;
+ CHECK_ARGS (1);
+ g_cmdline.xkbVariant = argv[++i];
+ return 2;
}
if (IS_OPTION("-xkboptions")) {
- CHECK_ARGS(1);
- g_cmdline.xkbOptions = argv[++i];
- return 2;
+ CHECK_ARGS (1);
+ g_cmdline.xkbOptions = argv[++i];
+ return 2;
}
if (IS_OPTION("-keyhook")) {
- g_fKeyboardHookLL = TRUE;
- return 1;
+ g_fKeyboardHookLL = TRUE;
+ return 1;
}
-
+
if (IS_OPTION("-nokeyhook")) {
- g_fKeyboardHookLL = FALSE;
- return 1;
+ g_fKeyboardHookLL = FALSE;
+ return 1;
}
-
+
if (IS_OPTION("-swcursor")) {
- g_fSoftwareCursor = TRUE;
- return 1;
+ g_fSoftwareCursor = TRUE;
+ return 1;
}
-
+
if (IS_OPTION("-silent-dup-error")) {
- g_fSilentDupError = TRUE;
- return 1;
+ g_fSilentDupError = TRUE;
+ return 1;
}
if (IS_OPTION("-wgl")) {
- g_fNativeGl = TRUE;
- return 1;
+ g_fNativeGl = TRUE;
+ return 1;
}
if (IS_OPTION("-nowgl")) {
- g_fNativeGl = FALSE;
- return 1;
+ g_fNativeGl = FALSE;
+ return 1;
}
- return 0;
+ if (IS_OPTION("-hostintitle"))
+ {
+ g_fHostInTitle = TRUE;
+ return 1;
+ }
+
+ return 0;
}
/*
@@ -1081,66 +1097,168 @@ ddxProcessArgument(int argc, char *argv[], int i)
*/
void
-winLogCommandLine(int argc, char *argv[])
+winLogCommandLine (int argc, char *argv[])
{
- int i;
- int iSize = 0;
- int iCurrLen = 0;
+ int i;
+ int iSize = 0;
+ int iCurrLen = 0;
#define CHARS_PER_LINE 60
- /* Bail if command line has already been logged */
- if (g_pszCommandLine)
- return;
+ /* Bail if command line has already been logged */
+ if (g_pszCommandLine)
+ return;
- /* Count how much memory is needed for concatenated command line */
- for (i = 0, iCurrLen = 0; i < argc; ++i)
+ /* Count how much memory is needed for concatenated command line */
+ for (i = 0, iCurrLen = 0; i < argc; ++i)
if (argv[i]) {
- /* Adds two characters for lines that overflow */
- if ((strlen(argv[i]) < CHARS_PER_LINE
- && iCurrLen + strlen(argv[i]) > CHARS_PER_LINE)
+ /* Adds two characters for lines that overflow */
+ if ((strlen (argv[i]) < CHARS_PER_LINE
+ && iCurrLen + strlen (argv[i]) > CHARS_PER_LINE)
|| strlen(argv[i]) > CHARS_PER_LINE) {
- iCurrLen = 0;
- iSize += 2;
- }
-
- /* Add space for item and trailing space */
- iSize += strlen(argv[i]) + 1;
-
- /* Update current line length */
- iCurrLen += strlen(argv[i]);
- }
+ iCurrLen = 0;
+ iSize += 2;
+ }
+
+ /* Add space for item and trailing space */
+ iSize += strlen (argv[i]) + 1;
+
+ /* Update current line length */
+ iCurrLen += strlen (argv[i]);
+ }
+
+ /* Allocate memory for concatenated command line */
+ g_pszCommandLine = malloc (iSize + 1);
+ if (!g_pszCommandLine)
+ FatalError ("winLogCommandLine - Could not allocate memory for "
+ "command line string. Exiting.\n");
+
+ /* Set first character to concatenated command line to null */
+ g_pszCommandLine[0] = '\0';
+
+ /* Loop through all args */
+ for (i = 0, iCurrLen = 0; i < argc; ++i) {
+ /* Add a character for lines that overflow */
+ if ((strlen (argv[i]) < CHARS_PER_LINE
+ && iCurrLen + strlen (argv[i]) > CHARS_PER_LINE)
+ || strlen(argv[i]) > CHARS_PER_LINE) {
+ iCurrLen = 0;
+
+ /* Add line break if it fits */
+ strncat (g_pszCommandLine, "\n ", iSize - strlen (g_pszCommandLine));
+ }
+
+ strncat (g_pszCommandLine, argv[i], iSize - strlen (g_pszCommandLine));
+ strncat (g_pszCommandLine, " ", iSize - strlen (g_pszCommandLine));
+
+ /* Save new line length */
+ iCurrLen += strlen (argv[i]);
+ }
- /* Allocate memory for concatenated command line */
- g_pszCommandLine = malloc(iSize + 1);
- if (!g_pszCommandLine)
- FatalError("winLogCommandLine - Could not allocate memory for "
- "command line string. Exiting.\n");
+ ErrorF ("XWin was started with the following command line:\n\n"
+ "%s\n\n", g_pszCommandLine);
+}
- /* Set first character to concatenated command line to null */
- g_pszCommandLine[0] = '\0';
+/*
+ * Detect the OS
+ */
- /* Loop through all args */
- for (i = 0, iCurrLen = 0; i < argc; ++i) {
- /* Add a character for lines that overflow */
- if ((strlen(argv[i]) < CHARS_PER_LINE
- && iCurrLen + strlen(argv[i]) > CHARS_PER_LINE)
- || strlen(argv[i]) > CHARS_PER_LINE) {
- iCurrLen = 0;
+typedef BOOL (WINAPI *LPFN_ISWOW64PROCESS) (HANDLE, PBOOL);
- /* Add line break if it fits */
- strncat(g_pszCommandLine, "\n ", iSize - strlen(g_pszCommandLine));
+static void
+winOS(void)
+{
+ OSVERSIONINFOEX osvi = {0};
+ char *windowstype = "Unknown";
+ char *prodName = "Unknown";
+ char *isWow = "Unknown";
+ LPFN_ISWOW64PROCESS fnIsWow64Process;
+
+ /* Get operating system version information */
+ osvi.dwOSVersionInfoSize = sizeof(osvi);
+ GetVersionEx((LPOSVERSIONINFO)&osvi);
+
+ /* Branch on platform ID */
+ switch (osvi.dwPlatformId)
+ {
+ case VER_PLATFORM_WIN32_NT:
+ windowstype = "Windows NT";
+
+ if (osvi.dwMajorVersion <= 4)
+ prodName = "Windows NT";
+ else if (osvi.dwMajorVersion == 6)
+ {
+ if (osvi.dwMinorVersion == 2)
+ {
+ if (osvi.wProductType == VER_NT_WORKSTATION)
+ prodName = "Windows 8";
+ else
+ prodName = "Windows Server 2012";
}
+ else if (osvi.dwMinorVersion == 1)
+ {
+ if (osvi.wProductType == VER_NT_WORKSTATION)
+ prodName = "Windows 7";
+ else
+ prodName = "Windows Server 2008 R2";
+ }
+ else if (osvi.dwMinorVersion == 0)
+ {
+ if (osvi.wProductType == VER_NT_WORKSTATION)
+ prodName = "Windows Vista";
+ else
+ prodName = "Windows Server 2008";
+ }
+ } else if (osvi.dwMajorVersion == 5)
+ {
+ if (osvi.dwMinorVersion == 2)
+ {
+ if (GetSystemMetrics(SM_SERVERR2))
+ prodName = "Windows Server 2003 R2";
+ else
+ prodName = "Windows Server 2003";
+ }
+ else if (osvi.dwMinorVersion == 1)
+ prodName = "Windows XP";
+ else if (osvi.dwMinorVersion == 0)
+ {
+ prodName = "Windows 2000";
+ break;
+ }
+ }
+
+ break;
+
+ case VER_PLATFORM_WIN32_WINDOWS:
+ windowstype = "Windows";
+ break;
+ }
- strncat(g_pszCommandLine, argv[i], iSize - strlen(g_pszCommandLine));
- strncat(g_pszCommandLine, " ", iSize - strlen(g_pszCommandLine));
-
- /* Save new line length */
- iCurrLen += strlen(argv[i]);
+ /* Check if we are running under WoW64 */
+ fnIsWow64Process = (LPFN_ISWOW64PROCESS)GetProcAddress(GetModuleHandle("kernel32"),"IsWow64Process");
+ if (NULL != fnIsWow64Process)
+ {
+ wBOOL bIsWow64 = FALSE;
+ if (fnIsWow64Process(GetCurrentProcess(),&bIsWow64))
+ {
+ isWow = bIsWow64 ? " (WoW64)" : " (Win32)";
+ }
+ else
+ {
+ /* IsWow64Process() failed */
+ isWow = " (WoWUnknown)";
+ }
+ }
+ else
+ {
+ /* OS doesn't support IsWow64Process() */
+ isWow = "";
}
- ErrorF("XWin was started with the following command line:\n\n"
- "%s\n\n", g_pszCommandLine);
+ ErrorF("OS: %s %s [%s %ld.%ld build %ld]%s\n",
+ prodName, osvi.szCSDVersion,
+ windowstype, osvi.dwMajorVersion, osvi.dwMinorVersion, osvi.dwBuildNumber,
+ isWow);
}
/*
@@ -1148,19 +1266,26 @@ winLogCommandLine(int argc, char *argv[])
*/
void
-winLogVersionInfo(void)
+winLogVersionInfo (void)
{
- static Bool s_fBeenHere = FALSE;
-
- if (s_fBeenHere)
- return;
- s_fBeenHere = TRUE;
-
- ErrorF("Welcome to the XWin X Server\n");
- ErrorF("Vendor: %s\n", XVENDORNAME);
- ErrorF("Release: %d.%d.%d.%d (%d)\n", XORG_VERSION_MAJOR,
- XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP,
- XORG_VERSION_CURRENT);
- ErrorF("%s\n\n", BUILDERSTRING);
- ErrorF("Contact: %s\n", BUILDERADDR);
+ static Bool s_fBeenHere = FALSE;
+
+ if (s_fBeenHere)
+ return;
+ s_fBeenHere = TRUE;
+
+ ErrorF ("Welcome to the XWin X Server\n");
+ ErrorF ("Vendor: %s\n", XVENDORNAME);
+ ErrorF ("Release: %d.%d.%d.%d\n", XORG_VERSION_MAJOR, XORG_VERSION_MINOR, XORG_VERSION_PATCH, XORG_VERSION_SNAP);
+#ifdef HAVE_SYS_UTSNAME_H
+ {
+ struct utsname name;
+ if (uname(&name) >= 0) {
+ ErrorF("OS: %s %s %s %s %s\n", name.sysname, name.nodename, name.release, name.version, name.machine);
+ }
+ }
+#endif
+ winOS();
+ if (strlen(BUILDERSTRING)) ErrorF ("%s\n", BUILDERSTRING);
+ ErrorF("\n");
}