home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / sybase / starbuck / h.z / JCTYPE.H < prev    next >
C/C++ Source or Header  |  1996-07-24  |  2KB  |  76 lines

  1. /*
  2.  *  jctype.h    Japanese character test macros
  3.  *
  4.  *  Copyright by WATCOM International Corp. 1988-1996.  All rights reserved.
  5.  */
  6. #ifndef _JCTYPE_H_INCLUDED
  7. #define _JCTYPE_H_INCLUDED
  8.  
  9. /*
  10.  *     iskana(c)     âJâiüEâRü[âh
  11.  *     iskpun(c)     âJâiïσÉ╪ò╢ÄÜ
  12.  *     iskmoji(c)     âJâiò╢ÄÜ
  13.  *     isalkana(c)     ëpò╢ÄÜé▄é╜é═âJâiò╢ÄÜ
  14.  *     ispnkana(c)     ëpïσÉ╪ò╢ÄÜé▄é╜é═âJâiïσÉ╪ò╢ÄÜ
  15.  *     isalnmkana(c)     ëpÉöÄÜé▄é╜é═âJâiò╢ÄÜ
  16.  *     isprkana(c)     ò\Īë┬ö\ò╢ÄÜüiï≤öÆé≡è▄é▐üj
  17.  *     isgrkana(c)     ò\Īë┬ö\ò╢ÄÜüiï≤öÆé≡Å£é¡üj
  18.  *
  19.  *     iskanji(c)     è┐ÄÜæµéPâoâCâg
  20.  *     iskanji2(c)     è┐ÄÜæµéQâoâCâg
  21.  *
  22.  */
  23.  
  24. #ifndef _COMDEF_H_INCLUDED
  25.  #include <_comdef.h>
  26. #endif
  27. #ifndef _CTYPE_H_INCLUDED
  28.  #include <ctype.h>
  29. #endif
  30.  
  31. #define _K    0x01    /* Kana moji      */
  32. #define _KP    0x02    /* Kana punct.      */
  33. #define _J1    0x04    /* Kanji 1st byte */
  34. #define _J2    0x08    /* Kanji 2nd byte */
  35.  
  36. #ifdef __cplusplus
  37. extern "C" {
  38. #endif
  39. _WCRTLINK extern int    iskana(int);
  40. _WCRTLINK extern int    iskpun(int);
  41. _WCRTLINK extern int    iskmoji(int);
  42. _WCRTLINK extern int    isalkana(int);
  43. _WCRTLINK extern int    ispnkana(int);
  44. _WCRTLINK extern int    isalnmkana(int);
  45. _WCRTLINK extern int    isprkana(int);
  46. _WCRTLINK extern int    isgrkana(int);
  47. _WCRTLINK extern int    iskanji(int);
  48. _WCRTLINK extern int    iskanji2(int);
  49.  
  50. /* kana, kanji type table */
  51. #if defined(__SW_BR) || defined(_RTDLL) 
  52.  #define _IsKTable _IsKTable_br
  53. #endif
  54. #ifdef M_I86HM
  55.  _WCRTLINK extern const char _WCFAR _IsKTable[257];
  56. #else
  57.  _WCRTLINK extern const char _WCNEAR _IsKTable[257];
  58. #endif
  59. #ifdef __cplusplus
  60. };
  61. #endif
  62.  
  63. #define iskana(__c)    (_IsKTable[(unsigned char)(__c)+1] & (_K|_KP))
  64. #define iskpun(__c)    (_IsKTable[(unsigned char)(__c)+1] & _KP)
  65. #define iskmoji(__c)    (_IsKTable[(unsigned char)(__c)+1] & _K)
  66. #define isalkana(__c)    (isalpha(__c) || iskmoji(__c))
  67. #define ispnkana(__c)    (ispunct(__c) || iskpun(__c))
  68. #define isalnmkana(__c) (isalnum(__c) || iskmoji(__c))
  69. #define isprkana(__c)    (isprint(__c) || iskana(__c))
  70. #define isgrkana(__c)    (isgraph(__c) || iskana(__c))
  71.  
  72. #define iskanji(__c)    (_IsKTable[(unsigned char)(__c)+1] & _J1)
  73. #define iskanji2(__c)    (_IsKTable[(unsigned char)(__c)+1] & _J2)
  74.  
  75. #endif
  76.