home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1997 May / VPR9705A.ISO / VPR_DATA / PROGRAM / CBTRIAL / SETUP / DATA.Z / MBCTYPE.H < prev    next >
C/C++ Source or Header  |  1997-02-14  |  3KB  |  89 lines

  1. /*  mbctype.h
  2.  
  3.     Defines the mbctype macros.
  4.  
  5. */
  6.  
  7. /*
  8.  *      C/C++ Run Time Library - Version 8.0
  9.  *
  10.  *      Copyright (c) 1997 by Borland International
  11.  *      All Rights Reserved.
  12.  *
  13.  */
  14. /* $Revision:   8.4  $ */
  15.  
  16. #ifndef __MBCTYPE_H
  17. #define __MBCTYPE_H
  18.  
  19. #ifndef __CTYPE_H
  20. #include <ctype.h>
  21. #endif
  22.  
  23. #if !defined(___DEFS_H)
  24. #include <_defs.h>
  25. #endif
  26.  
  27. #define __MBBS ((unsigned char)0x01) /* Non-punctuation of single byte set   */
  28. #define __MBBP ((unsigned char)0x02) /* Punctuation of single byte set       */
  29. #define __MBB1 ((unsigned char)0x04) /* Legal 1st byte of double byte stream */
  30. #define __MBB2 ((unsigned char)0x08) /* Legal 2nd btye of double byte stream */
  31.  
  32. extern unsigned char _RTLENTRY _EXPDATA _mbctype[];    /* character type array */
  33.  
  34. /* values used in _mbbtype(), _mbsbtype() */
  35. #define _MBC_SINGLE       0
  36. #define _MBC_LEAD         1
  37. #define _MBC_TRAIL        2
  38. #define _MBC_ILLEGAL    (-1)
  39.  
  40. /* Japanese code page */
  41. #define _KANJI_CP 932
  42.  
  43.  
  44. #ifdef __cplusplus
  45. extern "C" {
  46. #endif
  47.  
  48. int _RTLENTRY _ismbbkalpha(unsigned int __c);
  49. int _RTLENTRY _ismbbkpunct(unsigned int __c);
  50. int _RTLENTRY _ismbbkana  (unsigned int __c);
  51. int _RTLENTRY _ismbbalpha (unsigned int __c);
  52. int _RTLENTRY _ismbbpunct (unsigned int __c);
  53. int _RTLENTRY _ismbbalnum (unsigned int __c);
  54. int _RTLENTRY _ismbbprint (unsigned int __c);
  55. int _RTLENTRY _ismbbgraph (unsigned int __c);
  56.  
  57. #ifndef __MBCS_LEADTRAIL
  58. #define __MBCS_LEADTRAIL
  59. int _RTLENTRY _ismbblead  (unsigned int __c);
  60. int _RTLENTRY _ismbbtrail (unsigned int __c);
  61. int _RTLENTRY _ismbslead  (const unsigned char _FAR *__s1, const unsigned char _FAR *__s2);
  62. int _RTLENTRY _ismbstrail (const unsigned char _FAR *__s1, const unsigned char _FAR *__s2);
  63. #if !defined(__FLAT__)
  64. /* Model-independent functions */
  65. #if !__STDC__
  66. int _RTLENTRY __far _fismbslead (const unsigned char __far *__s1, const unsigned char __far *__s2);
  67. int _RTLENTRY __far _fismbstrail(const unsigned char __far *__s1, const unsigned char __far *__s2);
  68. #endif  /* ! __STDC__ */
  69. #endif  /* ! __FLAT__ */
  70. #endif  /* ! __MBCS_LEADTRAIL */
  71.  
  72. #ifdef __cplusplus
  73. }
  74. #endif
  75.  
  76. #define _ismbbkalpha(__c) ((_mbctype+1)[(unsigned char)(__c)] & __MBBS)
  77. #define _ismbbkpunct(__c) ((_mbctype+1)[(unsigned char)(__c)] & __MBBP)
  78. #define _ismbbkana(__c)   ((_mbctype+1)[(unsigned char)(__c)] &(__MBBS|__MBBP))
  79. #define _ismbbalpha(__c)  (isalpha((unsigned char)(__c)) || _ismbbkalpha(__c))
  80. #define _ismbbpunct(__c)  (ispunct((unsigned char)(__c)) || _ismbbkpunct(__c))
  81. #define _ismbbalnum(__c)  (isalnum((unsigned char)(__c)) || _ismbbkalpha(__c))
  82. #define _ismbbprint(__c)  (isprint((unsigned char)(__c)) || _ismbbkana(__c))
  83. #define _ismbbgraph(__c)  (isgraph((unsigned char)(__c)) || _ismbbkana(__c))
  84.  
  85. #define _ismbblead(__c)   ((_mbctype+1)[(unsigned char)(__c)] & __MBB1)
  86. #define _ismbbtrail(__c)  ((_mbctype+1)[(unsigned char)(__c)] & __MBB2)
  87.  
  88. #endif /* __MBCTYPE_H */
  89.