* mingwex/mbrtowc.c: New file.

* mingwex/wcrtomb.c: New file.
	* mingwex/btowc.c: New file.
	* mingwex/wctob.c: New file.
	* mingwex/mb_wc_common.h: New file.
	* mingwex/Makefile.in (DISTFILES): Add new files.
	(Q8_OBJS): Add new objects.
	* include/wchar.h: Adjust comment about mbrtowc() and related
	funcions. Add __restrict__ to pointer params in prototypes.
	(wmemset. wmemchr, wmemcpy, wmemmove, wcstoll, wcstoull): Remove
	arg names from protototypes.
This commit is contained in:
Danny Smith
2005-04-24 11:30:27 +00:00
parent 4fc953d6a1
commit 6fbeb6a3f0
8 changed files with 364 additions and 26 deletions

View File

@ -254,9 +254,11 @@ _CRTIMP wchar_t* __cdecl wcsupr (wchar_t*);
#define _WSTRING_DEFINED
#endif /* _WSTRING_DEFINED */
/* These are resolved by -lmsvcp60 */
/* If you don't have msvcp60.dll in your windows system directory, you can
easily obtain it with a search from your favorite search engine. */
/* These are resolved by -lmingwex. Alternatively, they can be resolved by
adding -lmsvcp60 to your command line, which will give you the VC++
versions of these functions. If you want the latter and don't have
msvcp60.dll in your windows system directory, you can easily obtain
it with a search from your favorite search engine. */
#ifndef __STRICT_ANSI__
typedef wchar_t _Wint_t;
#endif
@ -264,29 +266,35 @@ typedef wchar_t _Wint_t;
typedef int mbstate_t;
wint_t __cdecl btowc(int);
size_t __cdecl mbrlen(const char *, size_t, mbstate_t *);
size_t __cdecl mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
size_t __cdecl mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
size_t __cdecl wcrtomb(char *, wchar_t, mbstate_t *);
size_t __cdecl wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
size_t __cdecl mbrlen(const char * __restrict__, size_t,
mbstate_t * __restrict__);
size_t __cdecl mbrtowc(wchar_t * __restrict__, const char * __restrict__,
size_t, mbstate_t * __restrict__);
size_t __cdecl mbsrtowcs(wchar_t * __restrict__, const char ** __restrict__,
size_t, mbstate_t * __restrict__);
size_t __cdecl wcrtomb(char * __restrict__, wchar_t,
mbstate_t * __restrict__);
size_t __cdecl wcsrtombs(char * __restrict__, const wchar_t ** __restrict__,
size_t, mbstate_t * __restrict__);
int __cdecl wctob(wint_t);
#ifndef __NO_ISOCEXT /* these need static lib libmingwex.a */
__CRT_INLINE int __cdecl fwide(FILE* __UNUSED_PARAM(stream), int __UNUSED_PARAM(mode))
__CRT_INLINE int __cdecl fwide(FILE* __UNUSED_PARAM(stream),
int __UNUSED_PARAM(mode))
{return -1;} /* limited to byte orientation */
__CRT_INLINE int __cdecl mbsinit(const mbstate_t* __UNUSED_PARAM(ps))
{return 1;}
wchar_t* __cdecl wmemset(wchar_t* s, wchar_t c, size_t n);
wchar_t* __cdecl wmemchr(const wchar_t* s, wchar_t c, size_t n);
int wmemcmp(const wchar_t* s1, const wchar_t * s2, size_t n);
wchar_t* __cdecl wmemcpy(wchar_t* __restrict__ s1, const wchar_t* __restrict__ s2,
size_t n);
wchar_t* __cdecl wmemmove(wchar_t* s1, const wchar_t* s2, size_t n);
long long __cdecl wcstoll(const wchar_t* __restrict__ nptr,
wchar_t** __restrict__ endptr, int base);
unsigned long long __cdecl wcstoull(const wchar_t* __restrict__ nptr,
wchar_t ** __restrict__ endptr, int base);
wchar_t* __cdecl wmemset(wchar_t *, wchar_t, size_t);
wchar_t* __cdecl wmemchr(const wchar_t*, wchar_t, size_t);
int wmemcmp(const wchar_t*, const wchar_t *, size_t);
wchar_t* __cdecl wmemcpy(wchar_t* __restrict__,
const wchar_t* __restrict__,
size_t);
wchar_t* __cdecl wmemmove(wchar_t* s1, const wchar_t *, size_t);
long long __cdecl wcstoll(const wchar_t * __restrict__,
wchar_t** __restrict__, int);
unsigned long long __cdecl wcstoull(const wchar_t * __restrict__,
wchar_t ** __restrict__, int);
#endif /* __NO_ISOCEXT */
#ifndef __STRICT_ANSI__