From cb699ad770a17131a3c0b57a1f7af88e0a1e526e Mon Sep 17 00:00:00 2001 From: Danny Smith Date: Sat, 20 Apr 2002 13:50:04 +0000 Subject: [PATCH] * include/mbstring.h: New file. * include/mbctype.h: New file. Correct some email address dyslexia. --- winsup/mingw/ChangeLog | 7 +- winsup/mingw/include/mbctype.h | 97 +++++++++++++++++++++++ winsup/mingw/include/mbstring.h | 132 ++++++++++++++++++++++++++++++++ 3 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 winsup/mingw/include/mbctype.h create mode 100644 winsup/mingw/include/mbstring.h diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index 1d0a84169..c2a45162b 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,3 +1,8 @@ +2002-04-20 Danny Smith + + * include/mbstring.h: New file. + * include/mbctype.h: New file. + 2002-04-20 Danny Smith * include/tchar.h (__TEXT): Make same as define in @@ -40,7 +45,7 @@ * include/wchar.h (_snwprintf): Correct spelling. (_vsnwprintf): Likewise. -2002-03-26 Danny Smith +2002-03-26 Danny Smith * moldname.def.in (__MSVCRT__): Replace with !(__CRTDLL__). (wpopen): Add if !(__CRTDLL__). diff --git a/winsup/mingw/include/mbctype.h b/winsup/mingw/include/mbctype.h new file mode 100644 index 000000000..346e6d790 --- /dev/null +++ b/winsup/mingw/include/mbctype.h @@ -0,0 +1,97 @@ +/* + * mbctype.h + * + * Functions for testing multibyte character types and converting characters. + * + * This file is part of the Mingw32 package. + * + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef _MBCTYPE_H_ +#define _MBCTYPE_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +/* return values for _mbsbtype and _mbbtype in mbstring.h */ +#define _MBC_SINGLE 0 +#define _MBC_LEAD 1 +#define _MBC_TRAIL 2 +#define _MBC_ILLEGAL (-1) + +/* args for setmbcp (in lieu of actual codepage) */ +#define _MB_CP_SBCS 0 +#define _MB_CP_OEM (-2) +#define _MB_CP_ANSI (-3) +#define _MB_CP_LOCALE (-4) + +/* TODO: bit masks */ +/* +#define _MS +#define _MP +#define _M1 +#define _M2 +#define _SBUP +#define _SBLOW +*/ + +#ifndef RC_INVOKED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __STRICT_ANSI__ + +int _setmbcp (int); +int _getmbcp (void); + +/* byte classification */ +/* NB: Corresponding _ismbc* functions are in mbstring.h */ + +int _ismbbalpha (unsigned int); +int _ismbbalnum (unsigned int); +int _ismbbgraph (unsigned int); +int _ismbbprint (unsigned int); +int _ismbbpunct (unsigned int); + +int _ismbbkana (unsigned int); +int _ismbbkalnum (unsigned int); +int _ismbbkprint (unsigned int); +int _ismbbkpunct (unsigned int); + + +/* these are also in mbstring.h */ +int _ismbblead (unsigned int); +int _ismbbtrail (unsigned int); +int _ismbslead (const unsigned char*, const unsigned char*); +int _ismbstrail (const unsigned char*, const unsigned char*); + +#ifdef __DECLSPEC_SUPPORTED +__MINGW_IMPORT unsigned char _mbctype[]; +__MINGW_IMPORT unsigned char _mbcasemap[]; +#endif + +/* TODO : _MBCS_ mappings go in tchar.h */ + +#endif /* Not strict ANSI */ + +#ifdef __cplusplus +} +#endif + +#endif /* Not RC_INVOKED */ + +#endif /* Not _MCTYPE_H_ */ + diff --git a/winsup/mingw/include/mbstring.h b/winsup/mingw/include/mbstring.h new file mode 100644 index 000000000..d4afc1a54 --- /dev/null +++ b/winsup/mingw/include/mbstring.h @@ -0,0 +1,132 @@ +/* + * mbstring.h + * + * Protototypes for string functions supporting multibyte characters. + * + * This file is part of the Mingw32 package. + * + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef _MBSTRING_H_ +#define _MBSTRING_H_ + +/* All the headers include this file. */ +#include <_mingw.h> + +#ifndef RC_INVOKED + +#define __need_size_t +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __STRICT_ANSI__ + +/* character classification */ +int _ismbcalnum (unsigned int); +int _ismbcalpha (unsigned int); +int _ismbcdigit (unsigned int); +int _ismbcgraph (unsigned int); +int _ismbcprint (unsigned int); +int _ismbcpunct (unsigned int); +int _ismbcspace (unsigned int); +int _ismbclower (unsigned int); +int _ismbcupper (unsigned int); +int _ismbclegal (unsigned int); +int _ismbcsymbol (unsigned int); + + +/* also in mbctype.h */ +int _ismbblead (unsigned int ); +int _ismbbtrail (unsigned int ); +int _ismbslead ( const unsigned char*, const unsigned char*); +int _ismbstrail ( const unsigned char*, const unsigned char*); + +unsigned int _mbctolower (unsigned int); +unsigned int _mbctoupper (unsigned int); + +void _mbccpy (unsigned char*, const unsigned char*); +size_t _mbclen (const unsigned char*); + +unsigned int _mbbtombc (unsigned int); +unsigned int _mbctombb (unsigned int); + +/* Return value constants for these are defined in mbctype.h. */ +int _mbbtype (unsigned char, int); +int _mbsbtype (const unsigned char*, size_t); + +unsigned char* _mbscpy (unsigned char*, const unsigned char*); +unsigned char* _mbsncpy (unsigned char*, const unsigned char*, size_t); +unsigned char* _mbsnbcpy (unsigned char*, const unsigned char*, size_t); +unsigned char* _mbsset (unsigned char*, unsigned int); +unsigned char* _mbsnset (unsigned char*, unsigned int, size_t); +unsigned char* _mbsnbset (unsigned char*, unsigned int, size_t); +unsigned char* _mbsdup (const unsigned char*); +unsigned char* _mbsrev (unsigned char*); +unsigned char* _mbscat (unsigned char*, const unsigned char*); /* also in string.h */ +unsigned char* _mbsncat (unsigned char*, const unsigned char*, size_t); +unsigned char* _mbsnbcat (unsigned char*, const unsigned char*, size_t); +size_t _mbslen (const unsigned char*); +size_t _mbsnbcnt (const unsigned char*, size_t); +size_t _mbsnccnt (const unsigned char*, size_t); +unsigned char* _mbschr (const unsigned char*, unsigned int); /* also in string.h */ +unsigned char* _mbsrchr (const unsigned char*, unsigned int); +size_t _mbsspn (const unsigned char*, const unsigned char*); +size_t _mbscspn (const unsigned char*, const unsigned char*); +unsigned char* _mbsspnp (const unsigned char*, const unsigned char*); +unsigned char* _mbspbrk (const unsigned char*, const unsigned char*); +int _mbscmp (const unsigned char*, const unsigned char*); +int _mbsicmp (const unsigned char*, const unsigned char*); +int _mbsncmp (const unsigned char*, const unsigned char*, size_t); +int _mbsnicmp (const unsigned char*, const unsigned char*, size_t); +int _mbsnbcmp (const unsigned char*, const unsigned char*, size_t); +int _mbsnbicmp (const unsigned char*, const unsigned char*, size_t); +int _mbscoll (const unsigned char*, const unsigned char*); +int _mbsicoll (const unsigned char*, const unsigned char*); +int _mbsncoll (const unsigned char*, const unsigned char*, size_t); +int _mbsnicoll (const unsigned char*, const unsigned char*, size_t); +int _mbsnbcoll (const unsigned char*, const unsigned char*, size_t); +int _mbsnbicoll (const unsigned char*, const unsigned char*, size_t); + +unsigned char* _mbsinc (const unsigned char*); +unsigned char* _mbsninc (const unsigned char*, size_t); +unsigned char* _mbsdec (const unsigned char*, const unsigned char*); +unsigned int _mbsnextc (const unsigned char*); +unsigned char* _mbslwr (unsigned char*); +unsigned char* _mbsupr (unsigned char*); +unsigned char* _mbstok (unsigned char*, const unsigned char*); /* also in string.h */ + +/* Kanji */ +int _ismbchira (unsigned int); +int _ismbckata (unsigned int); +int _ismbcl0 (unsigned int); +int _ismbcl1 (unsigned int); +int _ismbcl2 (unsigned int); +unsigned int _mbcjistojms (unsigned int); +unsigned int _mbcjmstojis (unsigned int); +unsigned int _mbctohira (unsigned int); +unsigned int _mbctokata (unsigned int); + +#endif /* Not strict ANSI */ + +#ifdef __cplusplus +} +#endif + +#endif /* Not RC_INVOKED */ +#endif /* Not _MBSTRING_H_ */ + +