mirror of https://github.com/lianthony/NT4.0
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.
329 lines
7.8 KiB
329 lines
7.8 KiB
/*++
|
|
|
|
Copyright (c) 1995 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
ppdchar.c
|
|
|
|
Abstract:
|
|
|
|
PS driver PPD parser - character classfication table
|
|
|
|
[Notes:]
|
|
|
|
The PPD spec is very ad hoc. There are various rules
|
|
regarding what character can and can't appear in what
|
|
part of an entry. We'll use a table to classify them.
|
|
|
|
Revision History:
|
|
|
|
4/19/95 -davidx-
|
|
Created it.
|
|
|
|
mm/dd/yy -author-
|
|
description
|
|
|
|
--*/
|
|
|
|
|
|
#include <windef.h>
|
|
#include "ppdchar.h"
|
|
|
|
|
|
// Character classification table
|
|
|
|
BYTE _charTable[256] = {
|
|
|
|
/* 0 - */ 0,
|
|
/* 1 - */ 0,
|
|
/* 2 - */ 0,
|
|
/* 3 - */ 0,
|
|
/* 4 - */ 0,
|
|
/* 5 - */ 0,
|
|
/* 6 - */ 0,
|
|
/* 7 - */ 0,
|
|
/* 8 - */ 0,
|
|
/* 9 - */ CC_VALID | CC_XLATION | CC_SPACE,
|
|
/* 10 - */ CC_VALID | CC_NEWLINE,
|
|
/* 11 - */ 0,
|
|
/* 12 - */ 0,
|
|
/* 13 - */ CC_VALID | CC_NEWLINE,
|
|
/* 14 - */ 0,
|
|
/* 15 - */ 0,
|
|
/* 16 - */ 0,
|
|
/* 17 - */ 0,
|
|
/* 18 - */ 0,
|
|
/* 19 - */ 0,
|
|
/* 20 - */ 0,
|
|
/* 21 - */ 0,
|
|
/* 22 - */ 0,
|
|
/* 23 - */ 0,
|
|
/* 24 - */ 0,
|
|
/* 25 - */ 0,
|
|
/* 26 - */ 0,
|
|
/* 27 - */ 0,
|
|
/* 28 - */ 0,
|
|
/* 29 - */ 0,
|
|
/* 30 - */ 0,
|
|
/* 31 - */ 0,
|
|
/* 32 - */ CC_VALID | CC_XLATION | CC_SPACE,
|
|
/* 33 - ! */ CC_NORMAL,
|
|
/* 34 - " */ CC_NORMAL,
|
|
/* 35 - # */ CC_NORMAL,
|
|
/* 36 - $ */ CC_NORMAL,
|
|
/* 37 - % */ CC_NORMAL,
|
|
/* 38 - & */ CC_NORMAL,
|
|
/* 39 - ' */ CC_NORMAL,
|
|
/* 40 - ( */ CC_NORMAL,
|
|
/* 41 - ) */ CC_NORMAL,
|
|
/* 42 - * */ CC_NORMAL,
|
|
/* 43 - + */ CC_NORMAL,
|
|
/* 44 - , */ CC_NORMAL,
|
|
/* 45 - - */ CC_NORMAL,
|
|
/* 46 - . */ CC_NORMAL,
|
|
/* 47 - / */ CC_VALID | CC_KEYWORD | CC_XLATION,
|
|
/* 48 - 0 */ CC_NORMAL | CC_DIGIT,
|
|
/* 49 - 1 */ CC_NORMAL | CC_DIGIT,
|
|
/* 50 - 2 */ CC_NORMAL | CC_DIGIT,
|
|
/* 51 - 3 */ CC_NORMAL | CC_DIGIT,
|
|
/* 52 - 4 */ CC_NORMAL | CC_DIGIT,
|
|
/* 53 - 5 */ CC_NORMAL | CC_DIGIT,
|
|
/* 54 - 6 */ CC_NORMAL | CC_DIGIT,
|
|
/* 55 - 7 */ CC_NORMAL | CC_DIGIT,
|
|
/* 56 - 8 */ CC_NORMAL | CC_DIGIT,
|
|
/* 57 - 9 */ CC_NORMAL | CC_DIGIT,
|
|
/* 58 - : */ CC_VALID,
|
|
/* 59 - ; */ CC_NORMAL,
|
|
/* 60 - < */ CC_NORMAL,
|
|
/* 61 - = */ CC_NORMAL,
|
|
/* 62 - > */ CC_NORMAL,
|
|
/* 63 - ? */ CC_NORMAL,
|
|
/* 64 - @ */ CC_NORMAL,
|
|
/* 65 - A */ CC_NORMAL | CC_HEX,
|
|
/* 66 - B */ CC_NORMAL | CC_HEX,
|
|
/* 67 - C */ CC_NORMAL | CC_HEX,
|
|
/* 68 - D */ CC_NORMAL | CC_HEX,
|
|
/* 69 - E */ CC_NORMAL | CC_HEX,
|
|
/* 70 - F */ CC_NORMAL | CC_HEX,
|
|
/* 71 - G */ CC_NORMAL,
|
|
/* 72 - H */ CC_NORMAL,
|
|
/* 73 - I */ CC_NORMAL,
|
|
/* 74 - J */ CC_NORMAL,
|
|
/* 75 - K */ CC_NORMAL,
|
|
/* 76 - L */ CC_NORMAL,
|
|
/* 77 - M */ CC_NORMAL,
|
|
/* 78 - N */ CC_NORMAL,
|
|
/* 79 - O */ CC_NORMAL,
|
|
/* 80 - P */ CC_NORMAL,
|
|
/* 81 - Q */ CC_NORMAL,
|
|
/* 82 - R */ CC_NORMAL,
|
|
/* 83 - S */ CC_NORMAL,
|
|
/* 84 - T */ CC_NORMAL,
|
|
/* 85 - U */ CC_NORMAL,
|
|
/* 86 - V */ CC_NORMAL,
|
|
/* 87 - W */ CC_NORMAL,
|
|
/* 88 - X */ CC_NORMAL,
|
|
/* 89 - Y */ CC_NORMAL,
|
|
/* 90 - Z */ CC_NORMAL,
|
|
/* 91 - [ */ CC_NORMAL,
|
|
/* 92 - \ */ CC_NORMAL,
|
|
/* 93 - ] */ CC_NORMAL,
|
|
/* 94 - ^ */ CC_NORMAL,
|
|
/* 95 - _ */ CC_NORMAL,
|
|
/* 96 - ` */ CC_NORMAL,
|
|
/* 97 - a */ CC_NORMAL | CC_HEX,
|
|
/* 98 - b */ CC_NORMAL | CC_HEX,
|
|
/* 99 - c */ CC_NORMAL | CC_HEX,
|
|
/* 100 - d */ CC_NORMAL | CC_HEX,
|
|
/* 101 - e */ CC_NORMAL | CC_HEX,
|
|
/* 102 - f */ CC_NORMAL | CC_HEX,
|
|
/* 103 - g */ CC_NORMAL,
|
|
/* 104 - h */ CC_NORMAL,
|
|
/* 105 - i */ CC_NORMAL,
|
|
/* 106 - j */ CC_NORMAL,
|
|
/* 107 - k */ CC_NORMAL,
|
|
/* 108 - l */ CC_NORMAL,
|
|
/* 109 - m */ CC_NORMAL,
|
|
/* 110 - n */ CC_NORMAL,
|
|
/* 111 - o */ CC_NORMAL,
|
|
/* 112 - p */ CC_NORMAL,
|
|
/* 113 - q */ CC_NORMAL,
|
|
/* 114 - r */ CC_NORMAL,
|
|
/* 115 - s */ CC_NORMAL,
|
|
/* 116 - t */ CC_NORMAL,
|
|
/* 117 - u */ CC_NORMAL,
|
|
/* 118 - v */ CC_NORMAL,
|
|
/* 119 - w */ CC_NORMAL,
|
|
/* 120 - x */ CC_NORMAL,
|
|
/* 121 - y */ CC_NORMAL,
|
|
/* 122 - z */ CC_NORMAL,
|
|
/* 123 - { */ CC_NORMAL,
|
|
/* 124 - | */ CC_NORMAL,
|
|
/* 125 - } */ CC_NORMAL,
|
|
/* 126 - ~ */ CC_NORMAL,
|
|
/* 127 - */ 0,
|
|
/* 128 - */ 0,
|
|
/* 129 - */ 0,
|
|
/* 130 - */ 0,
|
|
/* 131 - */ 0,
|
|
/* 132 - */ 0,
|
|
/* 133 - */ 0,
|
|
/* 134 - */ 0,
|
|
/* 135 - */ 0,
|
|
/* 136 - */ 0,
|
|
/* 137 - */ 0,
|
|
/* 138 - */ 0,
|
|
/* 139 - */ 0,
|
|
/* 140 - */ 0,
|
|
/* 141 - */ 0,
|
|
/* 142 - */ 0,
|
|
/* 143 - */ 0,
|
|
/* 144 - */ 0,
|
|
/* 145 - */ 0,
|
|
/* 146 - */ 0,
|
|
/* 147 - */ 0,
|
|
/* 148 - */ 0,
|
|
/* 149 - */ 0,
|
|
/* 150 - */ 0,
|
|
/* 151 - */ 0,
|
|
/* 152 - */ 0,
|
|
/* 153 - */ 0,
|
|
/* 154 - */ 0,
|
|
/* 155 - */ 0,
|
|
/* 156 - */ 0,
|
|
/* 157 - */ 0,
|
|
/* 158 - */ 0,
|
|
/* 159 - */ 0,
|
|
/* 160 - */ 0,
|
|
/* 161 - */ 0,
|
|
/* 162 - */ 0,
|
|
/* 163 - */ 0,
|
|
/* 164 - */ 0,
|
|
/* 165 - */ 0,
|
|
/* 166 - */ 0,
|
|
/* 167 - */ 0,
|
|
/* 168 - */ 0,
|
|
/* 169 - */ 0,
|
|
/* 170 - */ 0,
|
|
/* 171 - */ 0,
|
|
/* 172 - */ 0,
|
|
/* 173 - */ 0,
|
|
/* 174 - */ 0,
|
|
/* 175 - */ 0,
|
|
/* 176 - */ 0,
|
|
/* 177 - */ 0,
|
|
/* 178 - */ 0,
|
|
/* 179 - */ 0,
|
|
/* 180 - */ 0,
|
|
/* 181 - */ 0,
|
|
/* 182 - */ 0,
|
|
/* 183 - */ 0,
|
|
/* 184 - */ 0,
|
|
/* 185 - */ 0,
|
|
/* 186 - */ 0,
|
|
/* 187 - */ 0,
|
|
/* 188 - */ 0,
|
|
/* 189 - */ 0,
|
|
/* 190 - */ 0,
|
|
/* 191 - */ 0,
|
|
/* 192 - */ 0,
|
|
/* 193 - */ 0,
|
|
/* 194 - */ 0,
|
|
/* 195 - */ 0,
|
|
/* 196 - */ 0,
|
|
/* 197 - */ 0,
|
|
/* 198 - */ 0,
|
|
/* 199 - */ 0,
|
|
/* 200 - */ 0,
|
|
/* 201 - */ 0,
|
|
/* 202 - */ 0,
|
|
/* 203 - */ 0,
|
|
/* 204 - */ 0,
|
|
/* 205 - */ 0,
|
|
/* 206 - */ 0,
|
|
/* 207 - */ 0,
|
|
/* 208 - */ 0,
|
|
/* 209 - */ 0,
|
|
/* 210 - */ 0,
|
|
/* 211 - */ 0,
|
|
/* 212 - */ 0,
|
|
/* 213 - */ 0,
|
|
/* 214 - */ 0,
|
|
/* 215 - */ 0,
|
|
/* 216 - */ 0,
|
|
/* 217 - */ 0,
|
|
/* 218 - */ 0,
|
|
/* 219 - */ 0,
|
|
/* 220 - */ 0,
|
|
/* 221 - */ 0,
|
|
/* 222 - */ 0,
|
|
/* 223 - */ 0,
|
|
/* 224 - */ 0,
|
|
/* 225 - */ 0,
|
|
/* 226 - */ 0,
|
|
/* 227 - */ 0,
|
|
/* 228 - */ 0,
|
|
/* 229 - */ 0,
|
|
/* 230 - */ 0,
|
|
/* 231 - */ 0,
|
|
/* 232 - */ 0,
|
|
/* 233 - */ 0,
|
|
/* 234 - */ 0,
|
|
/* 235 - */ 0,
|
|
/* 236 - */ 0,
|
|
/* 237 - */ 0,
|
|
/* 238 - */ 0,
|
|
/* 239 - */ 0,
|
|
/* 240 - */ 0,
|
|
/* 241 - */ 0,
|
|
/* 242 - */ 0,
|
|
/* 243 - */ 0,
|
|
/* 244 - */ 0,
|
|
/* 245 - */ 0,
|
|
/* 246 - */ 0,
|
|
/* 247 - */ 0,
|
|
/* 248 - */ 0,
|
|
/* 249 - */ 0,
|
|
/* 250 - */ 0,
|
|
/* 251 - */ 0,
|
|
/* 252 - */ 0,
|
|
/* 253 - */ 0,
|
|
/* 254 - */ 0,
|
|
/* 255 - */ 0,
|
|
|
|
};
|
|
|
|
|
|
|
|
INT
|
|
HexValue(
|
|
char chDigit
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
Return the value of a hex-decimal digit
|
|
|
|
Arguments:
|
|
|
|
chDigit - valid hex-decimal digit character [0-9] [a-f] [A-F]
|
|
|
|
Return Value:
|
|
|
|
integer value corresponding to the hex digit
|
|
|
|
--*/
|
|
|
|
{
|
|
return
|
|
(IsDigit(chDigit)) ?
|
|
(chDigit - '0') :
|
|
(chDigit >= 'a' && chDigit <= 'f') ?
|
|
(chDigit - 'a' + 10) :
|
|
(chDigit - 'A' + 10);
|
|
}
|
|
|
|
|