131 lines
2.5 KiB
C
131 lines
2.5 KiB
C
/***
|
|
*mbdata.h - MBCS lib data
|
|
*
|
|
* Copyright (c) 1991-1993, Microsoft Corporation. All rights reserved.
|
|
*
|
|
*Purpose:
|
|
* Defines data for use when building MBCS libs and routines
|
|
*
|
|
*Revision History:
|
|
* 11-19-92 KRS Ported from 16-bit sources.
|
|
* 02-23-93 SKS Update copyright to 1993
|
|
* 08-03-93 KRS Move _ismbbtruelead() from mbctype.h. Internal-only.
|
|
*
|
|
*******************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef _INTERNAL_IFSTRIP
|
|
#ifdef COMBOINC
|
|
#if defined(_DLL) && !defined(MTHREAD)
|
|
#error Cannot define _DLL without MTHREAD
|
|
#endif
|
|
#endif
|
|
#endif /* !_INTERNAL_IFSTRIP */
|
|
|
|
/* validate MBCS defines */
|
|
#ifdef _MBCS
|
|
|
|
#if (!defined(_KANJI) && !defined(_MBCS_OS))
|
|
#error Must specify MBCS locale.
|
|
#endif
|
|
|
|
#if (defined(_KANJI) && defined(_MBCS_OS))
|
|
#error Can't define _KANJI and _MBCS_OS together.
|
|
#endif
|
|
|
|
#else
|
|
|
|
#if defined(_KANJI)
|
|
#error Can not specify locale without definining _MBCS.
|
|
#endif
|
|
|
|
#if defined(_MBCS_OS)
|
|
#error Can not specify locale without definining _MBCS.
|
|
#error *** _MBCS_OS NOT IMPLEMENTED ***
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
#ifndef _MBCS
|
|
|
|
/*
|
|
* SBCS - Single Byte Character Set
|
|
*/
|
|
|
|
#define _ISLEADBYTE(c) (0)
|
|
#define _ISTRAILBYTE(c) (0)
|
|
|
|
#define _ismbbtruelead(_lb,_ch) (0)
|
|
|
|
#else
|
|
|
|
/*
|
|
* MBCS - Multi-Byte Character Set
|
|
*/
|
|
|
|
extern unsigned int _mbascii; /* flag for handling MB ASCII chars */
|
|
|
|
/*
|
|
* general use macros for model dependent/independet versions.
|
|
*/
|
|
|
|
#define _ISLEADBYTE(c) _ismbblead(c)
|
|
#define _ISTRAILBYTE(c) _ismbbtrail(c)
|
|
|
|
#define _ismbbtruelead(_lb,_ch) (!(_lb) && _ismbblead((_ch)))
|
|
|
|
/* define char range values */
|
|
|
|
#ifdef _KANJI
|
|
|
|
#define _MBASCIILEAD 0x82 /* lead byte value for MB ASCII char */
|
|
|
|
#define _MBUPPERLOW 0x8260 /* upper case */
|
|
#define _MBUPPERHIGH 0x8279
|
|
#define _MBLOWERLOW 0x8281 /* lower case */
|
|
#define _MBLOWERHIGH 0x829a
|
|
#define _MBCASEDIFF 0x21 /* diff between upper and lower case letters */
|
|
|
|
#define _MBDIGITLOW 0x824f /* digit */
|
|
#define _MBDIGITHIGH 0x8258
|
|
|
|
#define _MBSPACECHAR 0x8140 /* space */
|
|
|
|
/* Kanji-specific ranges */
|
|
#define _MBHIRALOW 0x829f /* hiragana */
|
|
#define _MBHIRAHIGH 0x82f1
|
|
|
|
#define _MBKATALOW 0x8340 /* katakana */
|
|
#define _MBKATAHIGH 0x8396
|
|
#define _MBKATAEXCEPT 0x837f /* exception */
|
|
|
|
#define _MBKIGOULOW 0x8141 /* kanji punctuation */
|
|
#define _MBKIGOUHIGH 0x81ac
|
|
#define _MBKIGOUEXCEPT 0x817f /* exception */
|
|
|
|
#endif
|
|
|
|
|
|
#ifdef _MBCS_OS
|
|
|
|
/*
|
|
* Portable MBCS libs
|
|
*/
|
|
|
|
#ifndef _WIN32_
|
|
extern unsigned int _CRTVAR1 _mbcsflag; /* pulls in _mbcsinit code */
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
#endif /* MBCS */
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|