I have just been reading the lists and realise that strncpyW/strncpy is bad news for some reason. Please consider this patch withdrawn.
Wouldn't it be better to implement strncpyW as a wrapper for memcpy? Given that all the other string functions are implemeted with the (W) version, having strncpyW missing is a bit confusing.
Jeff Latimer
Jeff Latimer wrote:
An implementation of strncpyW.
Jeff Latimer
Index: unicode.h
RCS file: /home/wine/wine/include/wine/unicode.h,v retrieving revision 1.31 diff -u -r1.31 unicode.h --- unicode.h 21 Apr 2005 17:18:50 -0000 1.31 +++ unicode.h 25 Apr 2005 10:48:05 -0000 @@ -191,6 +191,18 @@ return dst; }
+static inline WCHAR *strncpyW( WCHAR *dst, const WCHAR *src, int maxlen ) +{
- WCHAR *p = dst;
- if (maxlen > 0 )
- {
maxlen--;
while (((*p++ = *src++) && maxlen--));
- }
- if (*p) *p++ = (WCHAR) "\0";
- return dst;
+}
static inline int strcmpW( const WCHAR *str1, const WCHAR *str2 ) { while (*str1 && (*str1 == *str2)) { str1++; str2++; }