Home » Developing U++ » U++ Developers corner » The very strange xterm issue
The very strange xterm issue [message #14838] |
Mon, 17 March 2008 14:55  |
 |
mirek
Messages: 14267 Registered: November 2005
|
Ultimate Member |
|
|
Today I had a nice idea of "fixing" console app "execute" behaviour by launching xterm with -e option....
And I have tried and failed miserably:
void LocalHost::Launch(const char *_cmdline, bool console)
{
String cmdline = FindCommand(exedirs, _cmdline);
PutVerbose(cmdline);
#ifdef PLATFORM_WIN32
if(console)
cmdline = GetExeFilePath() + " ! " + cmdline;
int n = cmdline.GetLength() + 1;
Buffer<char> cmd(n);
memcpy(cmd, cmdline, n);
SECURITY_ATTRIBUTES sa;
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si, sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
Buffer<char> env(environment.GetCount() + 1);
memcpy(env, environment, environment.GetCount() + 1);
if(CreateProcess(NULL, cmd, &sa, &sa, TRUE,
NORMAL_PRIORITY_CLASS|CREATE_NEW_CONSOLE,
~env, NULL, &si, &pi)) {
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
else
PutConsole("Unable to launch " + String(_cmdline));
#endif
#ifdef PLATFORM_POSIX
if(console) // why this does not work?!
cmdline = "/usr/bin/xterm -hold -e " + cmdline;
Buffer<char> cmd_buf(strlen(cmdline) + 1);
char *cmd_out = cmd_buf;
Vector<char *> args;
const char *p = cmdline;
For some reason, if I try to launch xterm, ide (launching program) crashes miserably. I can launch any other X11 program without a problem...
Does anybody know what can be the cause?
Mirek
|
|
|
Goto Forum:
Current Time: Wed Aug 13 00:11:33 CEST 2025
Total time taken to generate the page: 0.07928 seconds
|