Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

164 lines
4.6 KiB

  1. #include "precomp.h"
  2. #pragma hdrstop
  3. //
  4. // Map to determine characteristics of text
  5. //
  6. UCHAR Charmap[CHARMAP_SIZE] = {
  7. LX_EOS, // 0x0, <end of string marker>
  8. LX_ILL, // 0x1
  9. LX_ILL, // 0x2
  10. LX_ILL, // 0x3
  11. LX_ILL, // 0x4
  12. LX_ILL, // 0x5
  13. LX_ILL, // 0x6
  14. LX_ILL, // 0x7
  15. LX_ILL, // 0x8
  16. LX_WHITE, // <horizontal tab>
  17. LX_NL, // <newline>
  18. LX_WHITE, // <vertical tab>
  19. LX_WHITE, // <form feed>
  20. LX_CR, // <really a carriage return>
  21. LX_ILL, // 0xe
  22. LX_ILL, // 0xf
  23. LX_ILL, // 0x10
  24. LX_ILL, // 0x11
  25. LX_ILL, // 0x12
  26. LX_ILL, // 0x13
  27. LX_ILL, // 0x14
  28. LX_ILL, // 0x15
  29. LX_ILL, // 0x16
  30. LX_ILL, // 0x17
  31. LX_ILL, // 0x18
  32. LX_ILL, // 0x19
  33. LX_EOS, // 0x1a, ^Z
  34. LX_ILL, // 0x1b
  35. LX_ILL, // 0x1c
  36. LX_ILL, // 0x1d
  37. LX_ILL, // 0x1e
  38. LX_ILL, // 0x1f
  39. LX_WHITE, // 0x20
  40. LX_OPERATOR, // !
  41. LX_DQUOTE, // "
  42. LX_POUND, // #
  43. LX_ASCII, // $
  44. LX_OPERATOR, // %
  45. LX_OPERATOR, // &
  46. LX_SQUOTE, // '
  47. LX_OPERATOR, // (
  48. LX_OPERATOR, // )
  49. LX_OPERATOR, // *
  50. LX_OPERATOR, // +
  51. LX_COMMA, // ,
  52. LX_MINUS, // -
  53. LX_DOT, // .
  54. LX_OPERATOR, // /
  55. LX_NUMBER, // 0
  56. LX_NUMBER, // 1
  57. LX_NUMBER, // 2
  58. LX_NUMBER, // 3
  59. LX_NUMBER, // 4
  60. LX_NUMBER, // 5
  61. LX_NUMBER, // 6
  62. LX_NUMBER, // 7
  63. LX_NUMBER, // 8
  64. LX_NUMBER, // 9
  65. LX_COLON, // :
  66. LX_SEMI, // ;
  67. LX_OPERATOR, // <
  68. LX_OPERATOR, // =
  69. LX_OPERATOR, // >
  70. LX_EOS, // ?
  71. LX_EACH, // @
  72. LX_ID, // A
  73. LX_ID, // B
  74. LX_ID, // C
  75. LX_ID, // D
  76. LX_ID, // E
  77. LX_ID, // F
  78. LX_ID, // G
  79. LX_ID, // H
  80. LX_ID, // I
  81. LX_ID, // J
  82. LX_ID, // K
  83. LX_ID, // L
  84. LX_ID, // M
  85. LX_ID, // N
  86. LX_ID, // O
  87. LX_ID, // P
  88. LX_ID, // Q
  89. LX_ID, // R
  90. LX_ID, // S
  91. LX_ID, // T
  92. LX_ID, // U
  93. LX_ID, // V
  94. LX_ID, // W
  95. LX_ID, // X
  96. LX_ID, // Y
  97. LX_ID, // Z
  98. LX_OBRACK, // [
  99. LX_EOS, // \ (backslash)
  100. LX_CBRACK, // ]
  101. LX_OPERATOR, // ^
  102. LX_MACRO, // _
  103. LX_ASCII, // `
  104. LX_ID, // a
  105. LX_ID, // b
  106. LX_ID, // c
  107. LX_ID, // d
  108. LX_ID, // e
  109. LX_ID, // f
  110. LX_ID, // g
  111. LX_ID, // h
  112. LX_ID, // i
  113. LX_ID, // j
  114. LX_ID, // k
  115. LX_ID, // l
  116. LX_ID, // m
  117. LX_ID, // n
  118. LX_ID, // o
  119. LX_ID, // p
  120. LX_ID, // q
  121. LX_ID, // r
  122. LX_ID, // s
  123. LX_ID, // t
  124. LX_ID, // u
  125. LX_ID, // v
  126. LX_ID, // w
  127. LX_ID, // x
  128. LX_ID, // y
  129. LX_ID, // z
  130. LX_OBRACE, // {
  131. LX_OPERATOR, // |
  132. LX_CBRACE, // }
  133. LX_OPERATOR, // ~
  134. LX_ILL, // 0x7f
  135. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  136. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  137. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  138. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  139. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  140. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  141. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  142. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  143. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  144. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  145. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  146. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  147. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  148. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  149. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  150. LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO, LX_MACRO,
  151. };
  152. void initCharmap(void)
  153. {
  154. int i;
  155. for (i = 0; i <= 127; i++) {
  156. // Initialize valid macro chars (besides '_' and >= 128)
  157. if (_istalnum(i)) {
  158. Charmap[i] |= LX_MACRO;
  159. }
  160. }
  161. }