home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / crt / src / ctype.c < prev    next >
C/C++ Source or Header  |  1998-06-17  |  7KB  |  151 lines

  1. /***
  2. *ctype.c - _ctype definition file
  3. *
  4. *       Copyright (c) 1989-1997, Microsoft Corporation. All rights reserved.
  5. *
  6. *Purpose:
  7. *       _ctype definition file of character classification data.  This file
  8. *       initializes the array used by the character classification macros
  9. *       in ctype.h.
  10. *
  11. *******************************************************************************/
  12.  
  13. #include <cruntime.h>
  14. #include <ctype.h>
  15.  
  16. unsigned short *_pctype = _ctype+1;     /* pointer to table for char's      */
  17. unsigned short *_pwctype = _ctype+1;    /* pointer to table for wchar_t's   */
  18.  
  19. unsigned short _ctype[257] = {
  20.         0,                      /* -1 EOF   */
  21.         _CONTROL,               /* 00 (NUL) */
  22.         _CONTROL,               /* 01 (SOH) */
  23.         _CONTROL,               /* 02 (STX) */
  24.         _CONTROL,               /* 03 (ETX) */
  25.         _CONTROL,               /* 04 (EOT) */
  26.         _CONTROL,               /* 05 (ENQ) */
  27.         _CONTROL,               /* 06 (ACK) */
  28.         _CONTROL,               /* 07 (BEL) */
  29.         _CONTROL,               /* 08 (BS)  */
  30.         _SPACE+_CONTROL,        /* 09 (HT)  */
  31.         _SPACE+_CONTROL,        /* 0A (LF)  */
  32.         _SPACE+_CONTROL,        /* 0B (VT)  */
  33.         _SPACE+_CONTROL,        /* 0C (FF)  */
  34.         _SPACE+_CONTROL,        /* 0D (CR)  */
  35.         _CONTROL,               /* 0E (SI)  */
  36.         _CONTROL,               /* 0F (SO)  */
  37.         _CONTROL,               /* 10 (DLE) */
  38.         _CONTROL,               /* 11 (DC1) */
  39.         _CONTROL,               /* 12 (DC2) */
  40.         _CONTROL,               /* 13 (DC3) */
  41.         _CONTROL,               /* 14 (DC4) */
  42.         _CONTROL,               /* 15 (NAK) */
  43.         _CONTROL,               /* 16 (SYN) */
  44.         _CONTROL,               /* 17 (ETB) */
  45.         _CONTROL,               /* 18 (CAN) */
  46.         _CONTROL,               /* 19 (EM)  */
  47.         _CONTROL,               /* 1A (SUB) */
  48.         _CONTROL,               /* 1B (ESC) */
  49.         _CONTROL,               /* 1C (FS)  */
  50.         _CONTROL,               /* 1D (GS)  */
  51.         _CONTROL,               /* 1E (RS)  */
  52.         _CONTROL,               /* 1F (US)  */
  53.         _SPACE+_BLANK,          /* 20 SPACE */
  54.         _PUNCT,                 /* 21 !     */
  55.         _PUNCT,                 /* 22 "     */
  56.         _PUNCT,                 /* 23 #     */
  57.         _PUNCT,                 /* 24 $     */
  58.         _PUNCT,                 /* 25 %     */
  59.         _PUNCT,                 /* 26 &     */
  60.         _PUNCT,                 /* 27 '     */
  61.         _PUNCT,                 /* 28 (     */
  62.         _PUNCT,                 /* 29 )     */
  63.         _PUNCT,                 /* 2A *     */
  64.         _PUNCT,                 /* 2B +     */
  65.         _PUNCT,                 /* 2C ,     */
  66.         _PUNCT,                 /* 2D -     */
  67.         _PUNCT,                 /* 2E .     */
  68.         _PUNCT,                 /* 2F /     */
  69.         _DIGIT+_HEX,            /* 30 0     */
  70.         _DIGIT+_HEX,            /* 31 1     */
  71.         _DIGIT+_HEX,            /* 32 2     */
  72.         _DIGIT+_HEX,            /* 33 3     */
  73.         _DIGIT+_HEX,            /* 34 4     */
  74.         _DIGIT+_HEX,            /* 35 5     */
  75.         _DIGIT+_HEX,            /* 36 6     */
  76.         _DIGIT+_HEX,            /* 37 7     */
  77.         _DIGIT+_HEX,            /* 38 8     */
  78.         _DIGIT+_HEX,            /* 39 9     */
  79.         _PUNCT,                 /* 3A :     */
  80.         _PUNCT,                 /* 3B ;     */
  81.         _PUNCT,                 /* 3C <     */
  82.         _PUNCT,                 /* 3D =     */
  83.         _PUNCT,                 /* 3E >     */
  84.         _PUNCT,                 /* 3F ?     */
  85.         _PUNCT,                 /* 40 @     */
  86.         _UPPER+_HEX,            /* 41 A     */
  87.         _UPPER+_HEX,            /* 42 B     */
  88.         _UPPER+_HEX,            /* 43 C     */
  89.         _UPPER+_HEX,            /* 44 D     */
  90.         _UPPER+_HEX,            /* 45 E     */
  91.         _UPPER+_HEX,            /* 46 F     */
  92.         _UPPER,                 /* 47 G     */
  93.         _UPPER,                 /* 48 H     */
  94.         _UPPER,                 /* 49 I     */
  95.         _UPPER,                 /* 4A J     */
  96.         _UPPER,                 /* 4B K     */
  97.         _UPPER,                 /* 4C L     */
  98.         _UPPER,                 /* 4D M     */
  99.         _UPPER,                 /* 4E N     */
  100.         _UPPER,                 /* 4F O     */
  101.         _UPPER,                 /* 50 P     */
  102.         _UPPER,                 /* 51 Q     */
  103.         _UPPER,                 /* 52 R     */
  104.         _UPPER,                 /* 53 S     */
  105.         _UPPER,                 /* 54 T     */
  106.         _UPPER,                 /* 55 U     */
  107.         _UPPER,                 /* 56 V     */
  108.         _UPPER,                 /* 57 W     */
  109.         _UPPER,                 /* 58 X     */
  110.         _UPPER,                 /* 59 Y     */
  111.         _UPPER,                 /* 5A Z     */
  112.         _PUNCT,                 /* 5B [     */
  113.         _PUNCT,                 /* 5C \     */
  114.         _PUNCT,                 /* 5D ]     */
  115.         _PUNCT,                 /* 5E ^     */
  116.         _PUNCT,                 /* 5F _     */
  117.         _PUNCT,                 /* 60 `     */
  118.         _LOWER+_HEX,            /* 61 a     */
  119.         _LOWER+_HEX,            /* 62 b     */
  120.         _LOWER+_HEX,            /* 63 c     */
  121.         _LOWER+_HEX,            /* 64 d     */
  122.         _LOWER+_HEX,            /* 65 e     */
  123.         _LOWER+_HEX,            /* 66 f     */
  124.         _LOWER,                 /* 67 g     */
  125.         _LOWER,                 /* 68 h     */
  126.         _LOWER,                 /* 69 i     */
  127.         _LOWER,                 /* 6A j     */
  128.         _LOWER,                 /* 6B k     */
  129.         _LOWER,                 /* 6C l     */
  130.         _LOWER,                 /* 6D m     */
  131.         _LOWER,                 /* 6E n     */
  132.         _LOWER,                 /* 6F o     */
  133.         _LOWER,                 /* 70 p     */
  134.         _LOWER,                 /* 71 q     */
  135.         _LOWER,                 /* 72 r     */
  136.         _LOWER,                 /* 73 s     */
  137.         _LOWER,                 /* 74 t     */
  138.         _LOWER,                 /* 75 u     */
  139.         _LOWER,                 /* 76 v     */
  140.         _LOWER,                 /* 77 w     */
  141.         _LOWER,                 /* 78 x     */
  142.         _LOWER,                 /* 79 y     */
  143.         _LOWER,                 /* 7A z     */
  144.         _PUNCT,                 /* 7B {     */
  145.         _PUNCT,                 /* 7C |     */
  146.         _PUNCT,                 /* 7D }     */
  147.         _PUNCT,                 /* 7E ~     */
  148.         _CONTROL,               /* 7F (DEL) */
  149.         /* and the rest are 0... */
  150. };
  151.