1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _UASTRFNC_H_
7 #define _UASTRFNC_H_
8 
9 #include <_mingw_unicode.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 #ifndef _X86_
16 #define ALIGNMENT_MACHINE
17 #endif
18 
19 #ifdef ALIGNMENT_MACHINE
20 #define IS_ALIGNED(p) (((ULONG_PTR)(p) & (sizeof(*(p))-1))==0)
21 
22   UNALIGNED WCHAR *ualstrcpynW(UNALIGNED WCHAR *lpString1,UNALIGNED const WCHAR *lpString2,int iMaxLength);
23   int ualstrcmpiW(UNALIGNED const WCHAR *dst,UNALIGNED const WCHAR *src);
24   int ualstrcmpW(UNALIGNED const WCHAR *src,UNALIGNED const WCHAR *dst);
25   size_t ualstrlenW(UNALIGNED const WCHAR *wcs);
26   UNALIGNED WCHAR *ualstrcpyW(UNALIGNED WCHAR *dst,UNALIGNED const WCHAR *src);
27 #else
28 #define ualstrcpynW StrCpyNW
29 #define ualstrcmpiW StrCmpIW
30 #define ualstrcmpW StrCmpW
31 #define ualstrlenW lstrlenW
32 #define ualstrcpyW StrCpyW
33 #endif
34 
35 #define ualstrcpynA lstrcpynA
36 #define ualstrcmpiA lstrcmpiA
37 #define ualstrcmpA lstrcmpA
38 #define ualstrlenA lstrlenA
39 #define ualstrcpyA lstrcpyA
40 
41 #define ualstrcpyn __MINGW_NAME_AW(ualstrcpyn)
42 #define ualstrcmpi __MINGW_NAME_AW(ualstrcmpi)
43 #define ualstrcmp __MINGW_NAME_AW(ualstrcmp)
44 #define ualstrlen __MINGW_NAME_AW(ualstrlen)
45 #define ualstrcpy __MINGW_NAME_AW(ualstrcpy)
46 
47 #ifdef __cplusplus
48 }
49 #endif
50 #endif
51