This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Howdy Harold...
At 09:30 AM 8/6/2003 -0400, you wrote:
That is really the problem: the machines don't die; they just freeze. So I have a computer sitting here that I can't keep my hands off but it randomly freezes between a couple of times an hour and once every couple of hours. Oh well, the return is authorized now, so I have to send it back within five days :)
That's why it's always brand-X Frankenstein machines for me. Unfortunately laptops are the only type of machine today that really need a manufacturer. For desktops, everyone just slaps together the same parts. I'll take good note of the Inspiron crashes, my company is offering to buy us a computer at Dell and I don't feel like getting a piece of junk.
** There's also a off-by-one bugfix in winmultiwindowclass.c, so no matter
what that file's changes should go in... **
Could you elaborate just a little on what this problem was? Do you expect it to fix any crashes?
Possibly some crash fixes, but definitely anything that looked at the res_name
portion of the winMultiWindowGetClassHint() function would get an unterminated
string in the heap...
len_name = strlen ((char *) prop->data);
(*res_name) = malloc (len_name + 1); <= allocated space for trailing 0
if (!*res_name) { return 0; }
strncpy ((*res_name), prop->data, len_name); <= won't copy that trailing 0!
Just changing the strncpy to
strncpy ((*res_name), prop->data, len_name+1); <= will copy that trailing 0
is the patch.
Oh yeah, a simple "if (fork()==0) { execl(); exit(0); }" seems to spawn X and
Windoze apps fine. I know there was some discussion about this earlier...
In the end I am probably not ready to code anyone into submission, so I will probably just accept what works, which will become the defacto standard, etc.
You may still be correct with your worries, I'm sure there's a file descriptor
that the OS is dup2()'ing there you don't want. FWIW I'm execl()'ing
/bin/sh -c <command string>
Interesting. I like the point raised by David Fraser about maybe making a substitutable %DISPLAY% variable for the config file so that you can reference the current display. How hard would that be?
That's just laziness on my part. The function HandleCustomWM_COMMAND in winmultiwindowprefs.c can do some peeking at the server setup (or it can be passed in in the LoadPreferences() call) and then do a strcpy followed by search-n-replace in the copied portion. The started app sees all ENV variables that XWin.exe saw at startup, so if you set your DISPLAY before starting XWin you don't need the -display x.x.x.x:y.y options.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |