XWin.exe crashes
Harold L Hunt II
huntharo@msu.edu
Mon Nov 4 09:35:00 GMT 2002
Oh, now this is just great. I opened this email in Mozilla, hit reply,
changed the address to send this only to Alan, and it still got sent to
the mailing list. Time for a new nightly of Mozilla...
Harold
Harold L Hunt II wrote:
> Alan,
>
> Do you want to apply Alexander's patch directly, or do you want me to
> apply it locally, test it, then submit it for inclusion in the trunk?
> Note, this applies to xkb stuff.
>
> Harold
>
> Alexander Gottwald wrote:
>
>> Christopher Faylor wrote:
>>
>>
>>
>>> I thought your patch only added a "b" to reads and writes which would
>>> indicate that it needed to operate entirely in "binmode". However, I
>>> see that in some cases, it doesn't add the "b". Not sure why.
>>>
>>> This seems to be the opposite of what you're implying though.
>>>
>>
>>
>> I'm not sure for the other cases. So I just changed the case where the
>> "wb" was definitly missing.
>>
>> Fixing bugs at work showed me one thing: Changing not exactly the
>> condition
>> where the bug occured will likely introduce a new one. If the XFree
>> maintainer which applies the patch is sure about the other cases, he
>> can easily add the
>> "t" where it belongs.
>>
>>
>>
>>> cgf
>>>
>>> Index: programs/Xserver/xkb/ddxLoad.c
>>> ===================================================================
>>> RCS file: /cvs/xc/programs/Xserver/xkb/ddxLoad.c,v
>>> retrieving revision 3.30
>>> diff -u -r3.30 ddxLoad.c
>>> --- programs/Xserver/xkb/ddxLoad.c 2002/05/31 18:46:06 3.30
>>> +++ programs/Xserver/xkb/ddxLoad.c 2002/11/03 12:29:17
>>> @@ -413,7 +413,7 @@
>>> else if (strlen(xkm_output_dir)+strlen(mapName)+5 <= PATH_MAX)
>>> sprintf(buf,"%s%s.xkm",xkm_output_dir,mapName);
>>> if (buf[0] != '\0')
>>> - file= fopen(buf,"r");
>>> + file= fopen(buf,"rb");
>>> else file= NULL;
>>> }
>>> else file= NULL;
>>>
>>
>>
>> This is the server. It reads the binary file. So the "b" should be
>> there. The automode maybe fixed this automaticly, but this is the
>> IMHO the better
>> way.
>>
>>
>>
>>
>>> Index: programs/xkbcomp/xkbcomp.c
>>> ===================================================================
>>> RCS file: /cvs/xc/programs/xkbcomp/xkbcomp.c,v
>>> retrieving revision 3.17
>>> diff -u -r3.17 xkbcomp.c
>>> --- programs/xkbcomp/xkbcomp.c 2002/06/05 00:00:37 3.17
>>> +++ programs/xkbcomp/xkbcomp.c 2002/11/03 14:57:04
>>> @@ -873,16 +873,30 @@
>>> * -- Branden Robinson
>>> */
>>> int outputFileFd;
>>> + int binMode = 0;
>>> + const char *openMode = "w";
>>> unlink(outputFile);
>>> +#ifdef O_BINARY
>>> + switch (outputFormat) {
>>> + case WANT_XKM_FILE:
>>> + binMode = O_BINARY;
>>> + openMode = "wb";
>>> + break;
>>> + default:
>>> + binMode = 0;
>>> + break;
>>> + }
>>> +#endif
>>> outputFileFd= open(outputFile, O_WRONLY|O_CREAT|O_EXCL,
>>> - S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
>>> +
>>> S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH|binMode);
>>> if (outputFileFd<0) {
>>> ERROR1("Cannot open \"%s\" to write keyboard description\n",
>>> outputFile);
>>> ACTION("Exiting\n");
>>> exit(1);
>>> }
>>> - out= fdopen(outputFileFd, "w");
>>> + + out= fdopen(outputFileFd, openMode);
>>> /* end BR */
>>> if (out==NULL) {
>>> ERROR1("Cannot open \"%s\" to write keyboard description\n",
>>>
>>
>>
>> This is for xkbcomp. Here the binary file gets written. So I added "wb"
>> where it was needed and left the other unchanged.
>> bye
>> ago
>>
>>
>
More information about the Cygwin-xfree
mailing list