On 7 Feb 2015, at 10:09, Wolfgang Lux <wolfgang....@gmail.com> wrote:
> 
> 
>> Am 07.02.2015 um 08:16 schrieb Germán Arias <germanan...@gmx.es>:
>> 
>> After solve the problem with pthread and nanosleep (change the
>> parts/time.h header on MinGW and change config.h, in gnustep base, to
>> don't use nanosleep) I have other problem. The configure script now
>> defines HAVE_MKSTEMP to 1, used in -writeToFile:options:error: in
>> NSData. This part of code isn't mingw compatible, so I add some changes
>> (see attached patch). However a simple test fail. This program:
>> 
>> NSData *dat = [NSData dataWithContentsOfFile:
>> @"/MinGW/msys/home/German/src.txt"];
>> 
>> [dat writeToFile: @"c:/MinGW/msys/home/German/test.txt" atomically:
>> YES];
>> 
>> Always wrote the temporary file at current directory. So the NSData
>> object can't rename this later. What I'm doing wrong? Or is this a bug
>> on Base?
> 
> Your patch looks wrong to me. Looking at the definitions of wthePath and 
> wtheRealPath, these variables are wide character strings. So you must not use 
> the standard string functions strncpy and strncat to copy and modify these 
> variables, but instead you should use their wide character variants wcsncpy 
> and wcsncat.

I think the code assumes HAVE_MKSTEMP will not be defined on mingw ... so the 
thing to do is make that explicit ... there's no point trying to use mkstem() 
on a windows system since there's already a native function we call to do the 
job.
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to