- Timestamp:
- Jun 12, 2000, 4:59:38 PM (25 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/KERNEL32.CPP
r3690 r3694 1 /* $Id: KERNEL32.CPP,v 1.4 5 2000-06-12 12:20:04phaller Exp $ */1 /* $Id: KERNEL32.CPP,v 1.46 2000-06-12 14:59:38 phaller Exp $ */ 2 2 3 3 /* … … 29 29 #include <stdlib.h> 30 30 #include <string.h> 31 #include <ctype.h> 31 32 32 33 #include "misc.h" … … 183 184 //****************************************************************************** 184 185 //****************************************************************************** 185 BOOL WIN32API GetStringTypeW(DWORD fdwInfoType, LPCWSTR lpSrcStr, int cchSrc, LPWORD lpCharType) 186 { 187 int i; 186 187 static const unsigned char CT_CType2_LUT[] = { 188 C2_NOTAPPLICABLE, /* - 0 */ 189 C2_NOTAPPLICABLE, /* - 1 */ 190 C2_NOTAPPLICABLE, /* - 2 */ 191 C2_NOTAPPLICABLE, /* - 3 */ 192 C2_NOTAPPLICABLE, /* - 4 */ 193 C2_NOTAPPLICABLE, /* - 5 */ 194 C2_NOTAPPLICABLE, /* - 6 */ 195 C2_NOTAPPLICABLE, /* - 7 */ 196 C2_NOTAPPLICABLE, /* - 8 */ 197 C2_SEGMENTSEPARATOR, /* - 9 */ 198 C2_NOTAPPLICABLE, /* - 10 */ 199 C2_NOTAPPLICABLE, /* - 11 */ 200 C2_NOTAPPLICABLE, /* - 12 */ 201 C2_NOTAPPLICABLE, /* - 13 */ 202 C2_NOTAPPLICABLE, /* - 14 */ 203 C2_NOTAPPLICABLE, /* - 15 */ 204 C2_NOTAPPLICABLE, /* - 16 */ 205 C2_NOTAPPLICABLE, /* - 17 */ 206 C2_NOTAPPLICABLE, /* - 18 */ 207 C2_NOTAPPLICABLE, /* - 19 */ 208 C2_NOTAPPLICABLE, /* - 20 */ 209 C2_NOTAPPLICABLE, /* - 21 */ 210 C2_NOTAPPLICABLE, /* - 22 */ 211 C2_NOTAPPLICABLE, /* - 23 */ 212 C2_NOTAPPLICABLE, /* - 24 */ 213 C2_NOTAPPLICABLE, /* - 25 */ 214 C2_NOTAPPLICABLE, /* - 26 */ 215 C2_NOTAPPLICABLE, /* - 27 */ 216 C2_NOTAPPLICABLE, /* - 28 */ 217 C2_NOTAPPLICABLE, /* - 29 */ 218 C2_NOTAPPLICABLE, /* - 30 */ 219 C2_NOTAPPLICABLE, /* - 31 */ 220 C2_WHITESPACE, /* - 32 */ 221 C2_OTHERNEUTRAL, /* ! - 33 */ 222 C2_OTHERNEUTRAL, /* " - 34 */ /* " */ 223 C2_EUROPETERMINATOR, /* # - 35 */ 224 C2_EUROPETERMINATOR, /* $ - 36 */ 225 C2_EUROPETERMINATOR, /* % - 37 */ 226 C2_LEFTTORIGHT, /* & - 38 */ 227 C2_OTHERNEUTRAL, /* ' - 39 */ 228 C2_OTHERNEUTRAL, /* ( - 40 */ 229 C2_OTHERNEUTRAL, /* ) - 41 */ 230 C2_OTHERNEUTRAL, /* * - 42 */ 231 C2_EUROPETERMINATOR, /* + - 43 */ 232 C2_COMMONSEPARATOR, /* , - 44 */ 233 C2_EUROPETERMINATOR, /* - - 45 */ 234 C2_EUROPESEPARATOR, /* . - 46 */ 235 C2_EUROPESEPARATOR, /* / - 47 */ 236 C2_EUROPENUMBER, /* 0 - 48 */ 237 C2_EUROPENUMBER, /* 1 - 49 */ 238 C2_EUROPENUMBER, /* 2 - 50 */ 239 C2_EUROPENUMBER, /* 3 - 51 */ 240 C2_EUROPENUMBER, /* 4 - 52 */ 241 C2_EUROPENUMBER, /* 5 - 53 */ 242 C2_EUROPENUMBER, /* 6 - 54 */ 243 C2_EUROPENUMBER, /* 7 - 55 */ 244 C2_EUROPENUMBER, /* 8 - 56 */ 245 C2_EUROPENUMBER, /* 9 - 57 */ 246 C2_COMMONSEPARATOR, /* : - 58 */ 247 C2_OTHERNEUTRAL, /* ; - 59 */ 248 C2_OTHERNEUTRAL, /* < - 60 */ 249 C2_OTHERNEUTRAL, /* = - 61 */ 250 C2_OTHERNEUTRAL, /* > - 62 */ 251 C2_OTHERNEUTRAL, /* ? - 63 */ 252 C2_LEFTTORIGHT, /* @ - 64 */ 253 C2_LEFTTORIGHT, /* A - 65 */ 254 C2_LEFTTORIGHT, /* B - 66 */ 255 C2_LEFTTORIGHT, /* C - 67 */ 256 C2_LEFTTORIGHT, /* D - 68 */ 257 C2_LEFTTORIGHT, /* E - 69 */ 258 C2_LEFTTORIGHT, /* F - 70 */ 259 C2_LEFTTORIGHT, /* G - 71 */ 260 C2_LEFTTORIGHT, /* H - 72 */ 261 C2_LEFTTORIGHT, /* I - 73 */ 262 C2_LEFTTORIGHT, /* J - 74 */ 263 C2_LEFTTORIGHT, /* K - 75 */ 264 C2_LEFTTORIGHT, /* L - 76 */ 265 C2_LEFTTORIGHT, /* M - 77 */ 266 C2_LEFTTORIGHT, /* N - 78 */ 267 C2_LEFTTORIGHT, /* O - 79 */ 268 C2_LEFTTORIGHT, /* P - 80 */ 269 C2_LEFTTORIGHT, /* Q - 81 */ 270 C2_LEFTTORIGHT, /* R - 82 */ 271 C2_LEFTTORIGHT, /* S - 83 */ 272 C2_LEFTTORIGHT, /* T - 84 */ 273 C2_LEFTTORIGHT, /* U - 85 */ 274 C2_LEFTTORIGHT, /* V - 86 */ 275 C2_LEFTTORIGHT, /* W - 87 */ 276 C2_LEFTTORIGHT, /* X - 88 */ 277 C2_LEFTTORIGHT, /* Y - 89 */ 278 C2_LEFTTORIGHT, /* Z - 90 */ 279 C2_OTHERNEUTRAL, /* [ - 91 */ 280 C2_OTHERNEUTRAL, /* \ - 92 */ 281 C2_OTHERNEUTRAL, /* ] - 93 */ 282 C2_OTHERNEUTRAL, /* ^ - 94 */ 283 C2_OTHERNEUTRAL, /* _ - 95 */ 284 C2_OTHERNEUTRAL, /* ` - 96 */ 285 C2_LEFTTORIGHT, /* a - 97 */ 286 C2_LEFTTORIGHT, /* b - 98 */ 287 C2_LEFTTORIGHT, /* c - 99 */ 288 C2_LEFTTORIGHT, /* d - 100 */ 289 C2_LEFTTORIGHT, /* e - 101 */ 290 C2_LEFTTORIGHT, /* f - 102 */ 291 C2_LEFTTORIGHT, /* g - 103 */ 292 C2_LEFTTORIGHT, /* h - 104 */ 293 C2_LEFTTORIGHT, /* i - 105 */ 294 C2_LEFTTORIGHT, /* j - 106 */ 295 C2_LEFTTORIGHT, /* k - 107 */ 296 C2_LEFTTORIGHT, /* l - 108 */ 297 C2_LEFTTORIGHT, /* m - 109 */ 298 C2_LEFTTORIGHT, /* n - 110 */ 299 C2_LEFTTORIGHT, /* o - 111 */ 300 C2_LEFTTORIGHT, /* p - 112 */ 301 C2_LEFTTORIGHT, /* q - 113 */ 302 C2_LEFTTORIGHT, /* r - 114 */ 303 C2_LEFTTORIGHT, /* s - 115 */ 304 C2_LEFTTORIGHT, /* t - 116 */ 305 C2_LEFTTORIGHT, /* u - 117 */ 306 C2_LEFTTORIGHT, /* v - 118 */ 307 C2_LEFTTORIGHT, /* w - 119 */ 308 C2_LEFTTORIGHT, /* x - 120 */ 309 C2_LEFTTORIGHT, /* y - 121 */ 310 C2_LEFTTORIGHT, /* z - 122 */ 311 C2_OTHERNEUTRAL, /* { - 123 */ 312 C2_OTHERNEUTRAL, /* | - 124 */ 313 C2_OTHERNEUTRAL, /* } - 125 */ 314 C2_OTHERNEUTRAL, /* ~ - 126 */ 315 C2_NOTAPPLICABLE, /* - 127 */ 316 C2_NOTAPPLICABLE, /* - 128 */ 317 C2_NOTAPPLICABLE, /* - 129 */ 318 C2_OTHERNEUTRAL, /* - 130 */ 319 C2_LEFTTORIGHT, /* - 131 */ 320 C2_OTHERNEUTRAL, /* - 132 */ 321 C2_OTHERNEUTRAL, /* 322 - 133 */ 323 C2_OTHERNEUTRAL, /* - 134 */ 324 C2_OTHERNEUTRAL, /* - 135 */ 325 C2_LEFTTORIGHT, /* - 136 */ 326 C2_EUROPETERMINATOR, /* - 137 */ 327 C2_LEFTTORIGHT, /* - 138 */ 328 C2_OTHERNEUTRAL, /* - 139 */ 329 C2_LEFTTORIGHT, /* - 140 */ 330 C2_NOTAPPLICABLE, /* - 141 */ 331 C2_NOTAPPLICABLE, /* - 142 */ 332 C2_NOTAPPLICABLE, /* - 143 */ 333 C2_NOTAPPLICABLE, /* - 144 */ 334 C2_OTHERNEUTRAL, /* - 145 */ 335 C2_OTHERNEUTRAL, /* - 146 */ 336 C2_OTHERNEUTRAL, /* - 147 */ 337 C2_OTHERNEUTRAL, /* - 148 */ 338 C2_OTHERNEUTRAL, /* - 149 */ 339 C2_OTHERNEUTRAL, /* - 150 */ 340 C2_OTHERNEUTRAL, /* - 151 */ 341 C2_LEFTTORIGHT, /* - 152 */ 342 C2_OTHERNEUTRAL, /* - 153 */ 343 C2_LEFTTORIGHT, /* - 154 */ 344 C2_OTHERNEUTRAL, /* - 155 */ 345 C2_LEFTTORIGHT, /* - 156 */ 346 C2_NOTAPPLICABLE, /* - 157 */ 347 C2_NOTAPPLICABLE, /* - 158 */ 348 C2_LEFTTORIGHT, /* - 159 */ 349 C2_WHITESPACE, /* - 160 */ 350 C2_OTHERNEUTRAL, /* ¡ - 161 */ 351 C2_EUROPETERMINATOR, /* ¢ - 162 */ 352 C2_EUROPETERMINATOR, /* £ - 163 */ 353 C2_EUROPETERMINATOR, /* € - 164 */ 354 C2_EUROPETERMINATOR, /* ¥ - 165 */ 355 C2_OTHERNEUTRAL, /* Š - 166 */ 356 C2_OTHERNEUTRAL, /* § - 167 */ 357 C2_OTHERNEUTRAL, /* š - 168 */ 358 C2_OTHERNEUTRAL, /* © - 169 */ 359 C2_OTHERNEUTRAL, /* ª - 170 */ 360 C2_OTHERNEUTRAL, /* « - 171 */ 361 C2_OTHERNEUTRAL, /* ¬ - 172 */ 362 C2_OTHERNEUTRAL, /* - 173 */ 363 C2_OTHERNEUTRAL, /* ® - 174 */ 364 C2_OTHERNEUTRAL, /* ¯ - 175 */ 365 C2_EUROPETERMINATOR, /* ° - 176 */ 366 C2_EUROPETERMINATOR, /* ± - 177 */ 367 C2_EUROPENUMBER, /* ² - 178 */ 368 C2_EUROPENUMBER, /* ³ - 179 */ 369 C2_OTHERNEUTRAL, /* Ž - 180 */ 370 C2_OTHERNEUTRAL, /* µ - 181 */ 371 C2_OTHERNEUTRAL, /* ¶ - 182 */ 372 C2_OTHERNEUTRAL, /* · - 183 */ 373 C2_OTHERNEUTRAL, /* ž - 184 */ 374 C2_EUROPENUMBER, /* ¹ - 185 */ 375 C2_OTHERNEUTRAL, /* º - 186 */ 376 C2_OTHERNEUTRAL, /* » - 187 */ 377 C2_OTHERNEUTRAL, /* Œ - 188 */ 378 C2_OTHERNEUTRAL, /* œ - 189 */ 379 C2_OTHERNEUTRAL, /* Ÿ - 190 */ 380 C2_OTHERNEUTRAL, /* ¿ - 191 */ 381 C2_LEFTTORIGHT, /* À - 192 */ 382 C2_LEFTTORIGHT, /* Á - 193 */ 383 C2_LEFTTORIGHT, /*  - 194 */ 384 C2_LEFTTORIGHT, /* à - 195 */ 385 C2_LEFTTORIGHT, /* Ä - 196 */ 386 C2_LEFTTORIGHT, /* Å - 197 */ 387 C2_LEFTTORIGHT, /* Æ - 198 */ 388 C2_LEFTTORIGHT, /* Ç - 199 */ 389 C2_LEFTTORIGHT, /* È - 200 */ 390 C2_LEFTTORIGHT, /* É - 201 */ 391 C2_LEFTTORIGHT, /* Ê - 202 */ 392 C2_LEFTTORIGHT, /* Ë - 203 */ 393 C2_LEFTTORIGHT, /* Ì - 204 */ 394 C2_LEFTTORIGHT, /* Í - 205 */ 395 C2_LEFTTORIGHT, /* Î - 206 */ 396 C2_LEFTTORIGHT, /* Ï - 207 */ 397 C2_LEFTTORIGHT, /* Ð - 208 */ 398 C2_LEFTTORIGHT, /* Ñ - 209 */ 399 C2_LEFTTORIGHT, /* Ò - 210 */ 400 C2_LEFTTORIGHT, /* Ó - 211 */ 401 C2_LEFTTORIGHT, /* Ô - 212 */ 402 C2_LEFTTORIGHT, /* Õ - 213 */ 403 C2_LEFTTORIGHT, /* Ö - 214 */ 404 C2_OTHERNEUTRAL, /* × - 215 */ 405 C2_LEFTTORIGHT, /* Ø - 216 */ 406 C2_LEFTTORIGHT, /* Ù - 217 */ 407 C2_LEFTTORIGHT, /* Ú - 218 */ 408 C2_LEFTTORIGHT, /* Û - 219 */ 409 C2_LEFTTORIGHT, /* Ü - 220 */ 410 C2_LEFTTORIGHT, /* Ý - 221 */ 411 C2_LEFTTORIGHT, /* Þ - 222 */ 412 C2_LEFTTORIGHT, /* ß - 223 */ 413 C2_LEFTTORIGHT, /* à - 224 */ 414 C2_LEFTTORIGHT, /* á - 225 */ 415 C2_LEFTTORIGHT, /* â - 226 */ 416 C2_LEFTTORIGHT, /* ã - 227 */ 417 C2_LEFTTORIGHT, /* ä - 228 */ 418 C2_LEFTTORIGHT, /* å - 229 */ 419 C2_LEFTTORIGHT, /* æ - 230 */ 420 C2_LEFTTORIGHT, /* ç - 231 */ 421 C2_LEFTTORIGHT, /* è - 232 */ 422 C2_LEFTTORIGHT, /* é - 233 */ 423 C2_LEFTTORIGHT, /* ê - 234 */ 424 C2_LEFTTORIGHT, /* ë - 235 */ 425 C2_LEFTTORIGHT, /* ì - 236 */ 426 C2_LEFTTORIGHT, /* í - 237 */ 427 C2_LEFTTORIGHT, /* î - 238 */ 428 C2_LEFTTORIGHT, /* ï - 239 */ 429 C2_LEFTTORIGHT, /* ð - 240 */ 430 C2_LEFTTORIGHT, /* ñ - 241 */ 431 C2_LEFTTORIGHT, /* ò - 242 */ 432 C2_LEFTTORIGHT, /* ó - 243 */ 433 C2_LEFTTORIGHT, /* ô - 244 */ 434 C2_LEFTTORIGHT, /* õ - 245 */ 435 C2_LEFTTORIGHT, /* ö - 246 */ 436 C2_OTHERNEUTRAL, /* ÷ - 247 */ 437 C2_LEFTTORIGHT, /* ø - 248 */ 438 C2_LEFTTORIGHT, /* ù - 249 */ 439 C2_LEFTTORIGHT, /* ú - 250 */ 440 C2_LEFTTORIGHT, /* û - 251 */ 441 C2_LEFTTORIGHT, /* ü - 252 */ 442 C2_LEFTTORIGHT, /* ý - 253 */ 443 C2_LEFTTORIGHT, /* þ - 254 */ 444 C2_LEFTTORIGHT /* ÿ - 255 */ 445 }; 446 447 const WORD OLE2NLS_CT_CType3_LUT[] = { 448 0x0000, /* - 0 */ 449 0x0000, /* - 1 */ 450 0x0000, /* - 2 */ 451 0x0000, /* - 3 */ 452 0x0000, /* - 4 */ 453 0x0000, /* - 5 */ 454 0x0000, /* - 6 */ 455 0x0000, /* - 7 */ 456 0x0000, /* - 8 */ 457 0x0008, /* - 9 */ 458 0x0008, /* - 10 */ 459 0x0008, /* - 11 */ 460 0x0008, /* - 12 */ 461 0x0008, /* - 13 */ 462 0x0000, /* - 14 */ 463 0x0000, /* - 15 */ 464 0x0000, /* - 16 */ 465 0x0000, /* - 17 */ 466 0x0000, /* - 18 */ 467 0x0000, /* - 19 */ 468 0x0000, /* - 20 */ 469 0x0000, /* - 21 */ 470 0x0000, /* - 22 */ 471 0x0000, /* - 23 */ 472 0x0000, /* - 24 */ 473 0x0000, /* - 25 */ 474 0x0000, /* - 26 */ 475 0x0000, /* - 27 */ 476 0x0000, /* - 28 */ 477 0x0000, /* - 29 */ 478 0x0000, /* - 30 */ 479 0x0000, /* - 31 */ 480 0x0048, /* - 32 */ 481 0x0048, /* ! - 33 */ 482 0x0448, /* " - 34 */ /* " */ 483 0x0048, /* # - 35 */ 484 0x0448, /* $ - 36 */ 485 0x0048, /* % - 37 */ 486 0x0048, /* & - 38 */ 487 0x0440, /* ' - 39 */ 488 0x0048, /* ( - 40 */ 489 0x0048, /* ) - 41 */ 490 0x0048, /* * - 42 */ 491 0x0048, /* + - 43 */ 492 0x0048, /* , - 44 */ 493 0x0440, /* - - 45 */ 494 0x0048, /* . - 46 */ 495 0x0448, /* / - 47 */ 496 0x0040, /* 0 - 48 */ 497 0x0040, /* 1 - 49 */ 498 0x0040, /* 2 - 50 */ 499 0x0040, /* 3 - 51 */ 500 0x0040, /* 4 - 52 */ 501 0x0040, /* 5 - 53 */ 502 0x0040, /* 6 - 54 */ 503 0x0040, /* 7 - 55 */ 504 0x0040, /* 8 - 56 */ 505 0x0040, /* 9 - 57 */ 506 0x0048, /* : - 58 */ 507 0x0048, /* ; - 59 */ 508 0x0048, /* < - 60 */ 509 0x0448, /* = - 61 */ 510 0x0048, /* > - 62 */ 511 0x0048, /* ? - 63 */ 512 0x0448, /* @ - 64 */ 513 0x8040, /* A - 65 */ 514 0x8040, /* B - 66 */ 515 0x8040, /* C - 67 */ 516 0x8040, /* D - 68 */ 517 0x8040, /* E - 69 */ 518 0x8040, /* F - 70 */ 519 0x8040, /* G - 71 */ 520 0x8040, /* H - 72 */ 521 0x8040, /* I - 73 */ 522 0x8040, /* J - 74 */ 523 0x8040, /* K - 75 */ 524 0x8040, /* L - 76 */ 525 0x8040, /* M - 77 */ 526 0x8040, /* N - 78 */ 527 0x8040, /* O - 79 */ 528 0x8040, /* P - 80 */ 529 0x8040, /* Q - 81 */ 530 0x8040, /* R - 82 */ 531 0x8040, /* S - 83 */ 532 0x8040, /* T - 84 */ 533 0x8040, /* U - 85 */ 534 0x8040, /* V - 86 */ 535 0x8040, /* W - 87 */ 536 0x8040, /* X - 88 */ 537 0x8040, /* Y - 89 */ 538 0x8040, /* Z - 90 */ 539 0x0048, /* [ - 91 */ 540 0x0448, /* \ - 92 */ 541 0x0048, /* ] - 93 */ 542 0x0448, /* ^ - 94 */ 543 0x0448, /* _ - 95 */ 544 0x0448, /* ` - 96 */ 545 0x8040, /* a - 97 */ 546 0x8040, /* b - 98 */ 547 0x8040, /* c - 99 */ 548 0x8040, /* d - 100 */ 549 0x8040, /* e - 101 */ 550 0x8040, /* f - 102 */ 551 0x8040, /* g - 103 */ 552 0x8040, /* h - 104 */ 553 0x8040, /* i - 105 */ 554 0x8040, /* j - 106 */ 555 0x8040, /* k - 107 */ 556 0x8040, /* l - 108 */ 557 0x8040, /* m - 109 */ 558 0x8040, /* n - 110 */ 559 0x8040, /* o - 111 */ 560 0x8040, /* p - 112 */ 561 0x8040, /* q - 113 */ 562 0x8040, /* r - 114 */ 563 0x8040, /* s - 115 */ 564 0x8040, /* t - 116 */ 565 0x8040, /* u - 117 */ 566 0x8040, /* v - 118 */ 567 0x8040, /* w - 119 */ 568 0x8040, /* x - 120 */ 569 0x8040, /* y - 121 */ 570 0x8040, /* z - 122 */ 571 0x0048, /* { - 123 */ 572 0x0048, /* | - 124 */ 573 0x0048, /* } - 125 */ 574 0x0448, /* ~ - 126 */ 575 0x0000, /* - 127 */ 576 0x0000, /* - 128 */ 577 0x0000, /* - 129 */ 578 0x0008, /* - 130 */ 579 0x8000, /* - 131 */ 580 0x0008, /* - 132 */ 581 0x0008, /* 582 - 133 */ 583 0x0008, /* - 134 */ 584 0x0008, /* - 135 */ 585 0x0001, /* - 136 */ 586 0x0008, /* - 137 */ 587 0x8003, /* - 138 */ 588 0x0008, /* - 139 */ 589 0x8000, /* - 140 */ 590 0x0000, /* - 141 */ 591 0x0000, /* - 142 */ 592 0x0000, /* - 143 */ 593 0x0000, /* - 144 */ 594 0x0088, /* - 145 */ 595 0x0088, /* - 146 */ 596 0x0088, /* - 147 */ 597 0x0088, /* - 148 */ 598 0x0008, /* - 149 */ 599 0x0400, /* - 150 */ 600 0x0400, /* - 151 */ 601 0x0408, /* - 152 */ 602 0x0000, /* - 153 */ 603 0x8003, /* - 154 */ 604 0x0008, /* - 155 */ 605 0x8000, /* - 156 */ 606 0x0000, /* - 157 */ 607 0x0000, /* - 158 */ 608 0x8003, /* - 159 */ 609 0x0008, /* - 160 */ 610 0x0008, /* ¡ - 161 */ 611 0x0048, /* ¢ - 162 */ 612 0x0048, /* £ - 163 */ 613 0x0008, /* € - 164 */ 614 0x0048, /* ¥ - 165 */ 615 0x0048, /* Š - 166 */ 616 0x0008, /* § - 167 */ 617 0x0408, /* š - 168 */ 618 0x0008, /* © - 169 */ 619 0x0400, /* ª - 170 */ 620 0x0008, /* « - 171 */ 621 0x0048, /* ¬ - 172 */ 622 0x0408, /* - 173 */ 623 0x0008, /* ® - 174 */ 624 0x0448, /* ¯ - 175 */ 625 0x0008, /* ° - 176 */ 626 0x0008, /* ± - 177 */ 627 0x0000, /* ² - 178 */ 628 0x0000, /* ³ - 179 */ 629 0x0408, /* Ž - 180 */ 630 0x0008, /* µ - 181 */ 631 0x0008, /* ¶ - 182 */ 632 0x0008, /* · - 183 */ 633 0x0408, /* ž - 184 */ 634 0x0000, /* ¹ - 185 */ 635 0x0400, /* º - 186 */ 636 0x0008, /* » - 187 */ 637 0x0000, /* Œ - 188 */ 638 0x0000, /* œ - 189 */ 639 0x0000, /* Ÿ - 190 */ 640 0x0008, /* ¿ - 191 */ 641 0x8003, /* À - 192 */ 642 0x8003, /* Á - 193 */ 643 0x8003, /*  - 194 */ 644 0x8003, /* à - 195 */ 645 0x8003, /* Ä - 196 */ 646 0x8003, /* Å - 197 */ 647 0x8000, /* Æ - 198 */ 648 0x8003, /* Ç - 199 */ 649 0x8003, /* È - 200 */ 650 0x8003, /* É - 201 */ 651 0x8003, /* Ê - 202 */ 652 0x8003, /* Ë - 203 */ 653 0x8003, /* Ì - 204 */ 654 0x8003, /* Í - 205 */ 655 0x8003, /* Î - 206 */ 656 0x8003, /* Ï - 207 */ 657 0x8000, /* Ð - 208 */ 658 0x8003, /* Ñ - 209 */ 659 0x8003, /* Ò - 210 */ 660 0x8003, /* Ó - 211 */ 661 0x8003, /* Ô - 212 */ 662 0x8003, /* Õ - 213 */ 663 0x8003, /* Ö - 214 */ 664 0x0008, /* × - 215 */ 665 0x8003, /* Ø - 216 */ 666 0x8003, /* Ù - 217 */ 667 0x8003, /* Ú - 218 */ 668 0x8003, /* Û - 219 */ 669 0x8003, /* Ü - 220 */ 670 0x8003, /* Ý - 221 */ 671 0x8000, /* Þ - 222 */ 672 0x8000, /* ß - 223 */ 673 0x8003, /* à - 224 */ 674 0x8003, /* á - 225 */ 675 0x8003, /* â - 226 */ 676 0x8003, /* ã - 227 */ 677 0x8003, /* ä - 228 */ 678 0x8003, /* å - 229 */ 679 0x8000, /* æ - 230 */ 680 0x8003, /* ç - 231 */ 681 0x8003, /* è - 232 */ 682 0x8003, /* é - 233 */ 683 0x8003, /* ê - 234 */ 684 0x8003, /* ë - 235 */ 685 0x8003, /* ì - 236 */ 686 0x8003, /* í - 237 */ 687 0x8003, /* î - 238 */ 688 0x8003, /* ï - 239 */ 689 0x8000, /* ð - 240 */ 690 0x8003, /* ñ - 241 */ 691 0x8003, /* ò - 242 */ 692 0x8003, /* ó - 243 */ 693 0x8003, /* ô - 244 */ 694 0x8003, /* õ - 245 */ 695 0x8003, /* ö - 246 */ 696 0x0008, /* ÷ - 247 */ 697 0x8003, /* ø - 248 */ 698 0x8003, /* ù - 249 */ 699 0x8003, /* ú - 250 */ 700 0x8003, /* û - 251 */ 701 0x8003, /* ü - 252 */ 702 0x8003, /* ý - 253 */ 703 0x8000, /* þ - 254 */ 704 0x8003 /* ÿ - 255 */ 705 }; 706 707 708 709 ODINFUNCTION4(BOOL, GetStringTypeW, 710 DWORD, dwInfoType, 711 LPCWSTR, lpSrcStr, 712 int, cchSrc, 713 LPWORD, lpCharType) 714 { 715 return GetStringTypeExW(0, 716 dwInfoType, 717 lpSrcStr, 718 cchSrc, 719 lpCharType); 720 } 721 722 723 ODINFUNCTION5(BOOL, GetStringTypeExW, 724 LCID, locale, 725 DWORD, dwInfoType, 726 LPCWSTR, lpSrcStr, 727 int, cchSrc, 728 LPWORD, lpCharType) 729 { 730 int i; 188 731 189 732 dprintf(("KERNEL32: GetStringTypeW, not properly implemented\n")); 190 if((DWORD)lpSrcStr == (DWORD)lpCharType || !lpSrcStr || !lpCharType) { 191 O32_SetLastError(ERROR_INVALID_PARAMETER); 192 return(FALSE); 733 if((DWORD)lpSrcStr == (DWORD)lpCharType || 734 !lpSrcStr || 735 !lpCharType) 736 { 737 O32_SetLastError(ERROR_INVALID_PARAMETER); 738 return(FALSE); 193 739 } 740 194 741 if(cchSrc == -1) 195 cchSrc = UniStrlen((UniChar*)lpSrcStr); 196 197 memset(lpCharType, 0, cchSrc*sizeof(WORD)); 198 switch(fdwInfoType) { 199 case CT_CTYPE1: 200 for(i=0;i<cchSrc;i++) { 201 if(lpSrcStr[i] >= (WCHAR)'a' && lpSrcStr[i] <= (WCHAR)'z') 202 lpCharType[i] |= C1_LOWER | C1_ALPHA; 203 else 204 if(lpSrcStr[i] >= (WCHAR)'A' && lpSrcStr[i] <= (WCHAR)'A') 205 lpCharType[i] |= C1_UPPER | C1_ALPHA; 206 else 207 if(lpSrcStr[i] >= (WCHAR)'0' && lpSrcStr[i] <= (WCHAR)'9') 208 lpCharType[i] |= C1_DIGIT; 209 else 210 if(lpSrcStr[i] >= (WCHAR)' ') 211 lpCharType[i] |= C1_SPACE; 212 } 213 break; 214 case CT_CTYPE2: 215 case CT_CTYPE3: //not supported right now 216 break; 742 cchSrc = UniStrlen((UniChar*)lpSrcStr); 743 744 switch(dwInfoType) 745 { 746 case CT_CTYPE1: 747 for(i=0;i<cchSrc;i++) 748 { 749 lpCharType[i] = 0; 750 if (isdigit(lpSrcStr[i])) lpCharType[i]|=C1_DIGIT; 751 if (isalpha(lpSrcStr[i])) lpCharType[i]|=C1_ALPHA; 752 if (islower(lpSrcStr[i])) lpCharType[i]|=C1_LOWER; 753 if (isupper(lpSrcStr[i])) lpCharType[i]|=C1_UPPER; 754 if (isspace(lpSrcStr[i])) lpCharType[i]|=C1_SPACE; 755 if (ispunct(lpSrcStr[i])) lpCharType[i]|=C1_PUNCT; 756 if (iscntrl(lpSrcStr[i])) lpCharType[i]|=C1_CNTRL; 757 if ( (lpSrcStr[i] == ' ') || 758 (lpSrcStr[i] == '\t') ) 759 lpCharType[i]|=C1_BLANK; 760 } 761 return TRUE; 762 break; 763 764 case CT_CTYPE2: 765 case CT_CTYPE3: //not supported right now 766 return FALSE; 767 break; 217 768 } 218 return(TRUE); 219 } 769 770 return FALSE; 771 } 772 220 773 //****************************************************************************** 221 774 //NOTE: This has one parameter more than the W version! (@#$@#$) 222 775 //****************************************************************************** 223 BOOL WIN32API GetStringTypeA(LCID Locale, DWORD fdwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType) 224 { 225 int i; 226 227 dprintf(("KERNEL32: GetStringTypeA, not properly implemented\n")); 228 if(lpSrcStr == (LPCSTR)lpCharType || !lpSrcStr || !lpCharType) { 229 O32_SetLastError(ERROR_INVALID_PARAMETER); 230 return(FALSE); 776 ODINFUNCTION5(BOOL, GetStringTypeA, 777 LCID, locale, 778 DWORD, dwInfoType, 779 LPCSTR, lpSrcStr, 780 int, cchSrc, 781 LPWORD, lpCharType) 782 { 783 return GetStringTypeExA(locale, 784 dwInfoType, 785 lpSrcStr, 786 cchSrc, 787 lpCharType); 788 } 789 790 /****************************************************************************** 791 *GetStringTypeExA[KERNEL32.397] 792 * 793 * FIXME: Ignores the locale. 794 */ 795 ODINFUNCTION5(BOOL, GetStringTypeExA, 796 LCID, locale, 797 DWORD, dwInfoType, 798 LPCSTR, src, 799 INT, cchSrc, 800 LPWORD, chartype) 801 { 802 int i; 803 804 if ((src==NULL) || 805 (chartype==NULL) || 806 (src==(LPSTR)chartype)) 807 { 808 SetLastError(ERROR_INVALID_PARAMETER); 809 return FALSE; 231 810 } 232 if(cchSrc == -1) 233 cchSrc = strlen(lpSrcStr); 234 235 memset(lpCharType, 0, cchSrc*sizeof(WORD)); 236 switch(fdwInfoType) { 237 case CT_CTYPE1: 238 for(i=0;i<cchSrc;i++) { 239 if(lpSrcStr[i] >= 'a' && lpSrcStr[i] <= 'z') 240 lpCharType[i] |= C1_LOWER | C1_ALPHA; 241 else 242 if(lpSrcStr[i] >= 'A' && lpSrcStr[i] <= 'A') 243 lpCharType[i] |= C1_UPPER | C1_ALPHA; 244 else 245 if(lpSrcStr[i] >= '0' && lpSrcStr[i] <= '9') 246 lpCharType[i] |= C1_DIGIT; 247 else 248 if(lpSrcStr[i] >= ' ') 249 lpCharType[i] |= C1_SPACE; 250 } 251 break; 252 case CT_CTYPE2: 253 case CT_CTYPE3: //not supported right now 254 break; 811 812 if (cchSrc==-1) 813 cchSrc=lstrlenA(src)+1; 814 815 switch (dwInfoType) 816 { 817 case CT_CTYPE1: 818 for (i=0;i<cchSrc;i++) 819 { 820 chartype[i] = 0; 821 if (isdigit(src[i])) chartype[i]|=C1_DIGIT; 822 if (isalpha(src[i])) chartype[i]|=C1_ALPHA; 823 if (islower(src[i])) chartype[i]|=C1_LOWER; 824 if (isupper(src[i])) chartype[i]|=C1_UPPER; 825 if (isspace(src[i])) chartype[i]|=C1_SPACE; 826 if (ispunct(src[i])) chartype[i]|=C1_PUNCT; 827 if (iscntrl(src[i])) chartype[i]|=C1_CNTRL; 828 /* FIXME: isblank() is a GNU extension */ 829 /*if (isblank(src[i])) chartype[i]|=C1_BLANK; */ 830 if ((src[i] == ' ') || (src[i] == '\t')) chartype[i]|=C1_BLANK; 831 /* C1_XDIGIT */ 832 } 833 return TRUE; 834 835 case CT_CTYPE2: 836 for (i=0;i<cchSrc;i++) 837 { 838 chartype[i]=(WORD)CT_CType2_LUT[i]; 839 } 840 return TRUE; 841 842 case CT_CTYPE3: 843 for (i=0;i<cchSrc;i++) 844 { 845 chartype[i]=OLE2NLS_CT_CType3_LUT[i]; 846 } 847 return TRUE; 848 849 default: 850 dprintf(("Unknown dwInfoType:%ld\n", 851 dwInfoType)); 852 return FALSE; 255 853 } 256 return(TRUE); 257 } 258 //****************************************************************************** 259 //****************************************************************************** 260 BOOL WIN32API GetStringTypeExW(LCID Locale, DWORD fdwInfoType, LPCWSTR lpSrcStr, int cchSrc, LPWORD lpCharType) 261 { 262 dprintf(("KERNEL32: GetStringTypeExW, not properly implemented\n")); 263 return(GetStringTypeW(fdwInfoType, lpSrcStr, cchSrc, lpCharType)); 264 } 265 //****************************************************************************** 266 //****************************************************************************** 267 BOOL WIN32API GetStringTypeExA(LCID Locale, DWORD fdwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType) 268 { 269 dprintf(("KERNEL32: GetStringTypeExA, not properly implemented\n")); 270 return(GetStringTypeA(Locale, fdwInfoType, lpSrcStr, cchSrc, lpCharType)); 271 } 854 } 855 856 272 857 //****************************************************************************** 273 858 VOID WIN32API GlobalMemoryStatus( MEMORYSTATUS *arg1) -
trunk/src/kernel32/directory.cpp
r3693 r3694 1 /* $Id: directory.cpp,v 1.2 4 2000-06-12 13:03:00phaller Exp $ */1 /* $Id: directory.cpp,v 1.25 2000-06-12 14:59:37 phaller Exp $ */ 2 2 3 3 /* … … 43 43 44 44 ODINDEBUGCHANNEL(KERNEL32-DIRECTORY) 45 46 47 /***************************************************************************** 48 * Local Prototypes * 49 *****************************************************************************/ 45 50 46 51 … … 224 229 225 230 // cut off trailing backslashes 226 if (lpstrDirectory[len - 1] == '\\') 231 if ( (lpstrDirectory[len - 1] == '\\') || 232 (lpstrDirectory[len - 1] == '/') ) 227 233 { 228 234 lstrcpynA(szBuffer, … … 236 242 lpstrDirectory)); 237 243 238 return(O32_CreateDirectory(szBuffer, 244 // PH Note 2000/06/12: 245 // Creation of an existing directory is NO ERROR it seems. 246 DWORD dwAttr = GetFileAttributesA(lpstrDirectory); 247 if (dwAttr != -1) 248 if (dwAttr & FILE_ATTRIBUTE_DIRECTORY) 249 { 250 SetLastError(ERROR_SUCCESS); 251 return TRUE; 252 } 253 254 return(O32_CreateDirectory(lpstrDirectory, 239 255 arg2)); 240 256 } … … 407 423 408 424 // cut off trailing backslashes 409 if (lpstrDirectory[len - 1] == '\\') 425 if ( (lpstrDirectory[len - 1] == '\\') || 426 (lpstrDirectory[len - 1] == '/') ) 410 427 { 411 428 lstrcpynA(szBuffer,
Note:
See TracChangeset
for help on using the changeset viewer.