2 * Unicode routines for use inside the server
4 * Copyright (C) 1999 Alexandre Julliard
7 #ifndef __WINE_SERVER_UNICODE_H
8 #define __WINE_SERVER_UNICODE_H
10 #ifndef __WINE_SERVER__
11 #error This file can only be used in the Wine server
24 static inline size_t strlenW( const WCHAR
*str
)
31 static inline int strcmpW( const WCHAR
*str1
, const WCHAR
*str2
)
33 while (*str1
&& (*str1
== *str2
)) { str1
++; str2
++; }
39 #define towupper(ch) (HIBYTE(ch) ? ch : (WCHAR)toupper(LOBYTE(ch)))
42 static inline int strcmpiW( const WCHAR
*str1
, const WCHAR
*str2
)
44 while (*str1
&& (towupper(*str1
) == towupper(*str2
))) { str1
++; str2
++; }
45 return towupper(*str1
) - towupper(*str2
);
48 static inline WCHAR
*strcpyW( WCHAR
*dst
, const WCHAR
*src
)
50 const WCHAR
*ret
= dst
;
51 while ((*dst
++ = *src
++));
55 static inline WCHAR
*strdupW( const WCHAR
*str
)
57 size_t len
= (strlenW(str
) + 1) * sizeof(WCHAR
);
58 return memdup( str
, len
);
61 extern int dump_strW( const WCHAR
*str
, size_t len
, FILE *f
, char escape
[2] );
63 #endif /* __WINE_SERVER_UNICODE_H */