patch to fix locale behavior
Mehmet YASAR
myasar at free.fr
Thu May 23 15:17:38 CDT 2002
Hi,
It's a repost of my previous patch for GetLocaleInfoA (it has been
dropped ?) with the same fix applied to GetNumberFormatA and
GetCurrencyFormatA (as shown in my locale regression test).
Mehmet
Changelog
Fix GetLocaleInfoA /GetNumberFormatA /GetCurrencyFormatA to
work as Windows (first fill buffer then test buffer length)
since some app rely on this bug.
-------------- next part --------------
diff -ur /home/mehmet/CVS/wine/ole/ole2nls.c ./ole2nls.c
--- /home/mehmet/CVS/wine/ole/ole2nls.c Sun Apr 28 15:42:21 2002
+++ ./ole2nls.c Thu May 23 18:54:38 2002
@@ -574,8 +574,9 @@
}
/* if len=0 return only the length, don't touch the buffer*/
if (len) {
- lstrcpynA(buf,retString,len);
- return strlen(buf) + 1;
+ /* Like Windows we copy len bytes to buffer and we check len after */
+ strncpy(buf,retString,len);
+ return (len < strlen(retString) + 1)? 0 : strlen(retString)+1 ;
}
return strlen(retString)+1;
}
@@ -3275,9 +3276,8 @@
retVal = strlen(sDestination) + 1;
else
{
- strncpy (lpNumberStr, sDestination, cchNumber-1);
- *(lpNumberStr+cchNumber-1) = '\0'; /* ensure we got a NULL at the end */
- retVal = strlen(lpNumberStr);
+ strncpy (lpNumberStr, sDestination, cchNumber);
+ retVal = cchNumber < (strlen(sDestination)+1) ? 0: strlen(sDestination)+1;
}
return retVal;
@@ -3531,9 +3531,8 @@
else
{
- strncpy (lpCurrencyStr, pDestination, cchCurrency-1);
- *(lpCurrencyStr+cchCurrency-1) = '\0'; /* ensure we got a NULL at the end */
- return strlen(lpCurrencyStr);
+ strncpy (lpCurrencyStr, pDestination, cchCurrency);
+ return (cchCurrency < (strlen(pDestination)+1) ? 0: strlen(pDestination)+1);
}
}
Only in .: ole2nls.c~
More information about the wine-patches
mailing list