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