diff options
Diffstat (limited to 'xorg-server/hw/xwin/winprefs.c')
-rw-r--r-- | xorg-server/hw/xwin/winprefs.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/xorg-server/hw/xwin/winprefs.c b/xorg-server/hw/xwin/winprefs.c index 8936aae63..5a51f3b3b 100644 --- a/xorg-server/hw/xwin/winprefs.c +++ b/xorg-server/hw/xwin/winprefs.c @@ -51,6 +51,8 @@ extern const char *winGetBaseDir(void); +extern const char *g_pszLogFile; + /* From winprefslex.l, the real parser */ extern int parse_file(FILE * fp); @@ -353,8 +355,8 @@ HandleCustomWM_COMMAND(unsigned long hwndIn, int command) memset(&start, 0, sizeof(start)); start.cb = sizeof(start); - start.dwFlags = STARTF_USESHOWWINDOW; - start.wShowWindow = SW_HIDE; + //start.dwFlags = STARTF_USESHOWWINDOW; + //start.wShowWindow = SW_HIDE; memset(&child, 0, sizeof(child)); @@ -366,7 +368,7 @@ HandleCustomWM_COMMAND(unsigned long hwndIn, int command) } else MessageBox(NULL, m->menuItem[j].param, - "Mingrc Exec Command Error!", + "VcXsrv Exec Command Error!", MB_OK | MB_ICONEXCLAMATION); } return TRUE; @@ -723,16 +725,13 @@ LoadPreferences(void) } /* Setup a DISPLAY environment variable, need to allocate on heap */ - /* because putenv doesn't copy the argument... */ - snprintf(szDisplay, 512, "DISPLAY=127.0.0.1:%s.0", display); - szEnvDisplay = (char *) (malloc(strlen(szDisplay) + 1)); - if (szEnvDisplay) { - strcpy(szEnvDisplay, szDisplay); - putenv(szEnvDisplay); - } + /* because putenv doesn't copy the argument... Always use screen 0 */ + winGetDisplayName(szDisplay, 0); + szEnvDisplay = (char *)(malloc(strlen(szDisplay)+9/*strlen("DISPLAY=")+1*/)); + snprintf(szEnvDisplay, 512, "DISPLAY=%s", szDisplay); + putenv (szEnvDisplay); /* Replace any "%display%" in menu commands with display string */ - snprintf(szDisplay, 512, "127.0.0.1:%s.0", display); for (i = 0; i < pref.menuItems; i++) { for (j = 0; j < pref.menu[i].menuItems; j++) { if (pref.menu[i].menuItem[j].cmd == CMD_EXEC) { @@ -744,6 +743,11 @@ LoadPreferences(void) dstParam += strlen(szDisplay); srcParam += 9; } + else if (!strncmp(srcParam, "%logfile%", 9)) { + memcpy (dstParam, g_pszLogFile, strlen(g_pszLogFile)); + dstParam += strlen(g_pszLogFile); + srcParam += 9; + } else { *dstParam = *srcParam; dstParam++; |