| 554 | |
| 555 | #ifdef DJGPP |
| 556 | static inline unsigned char convert_char_dos(unsigned char car) |
| 557 | { |
| 558 | if(car<0x20) |
| 559 | return '_'; |
| 560 | switch(car) |
| 561 | { |
| 562 | /* Forbidden */ |
| 563 | case '<': |
| 564 | case '>': |
| 565 | case ':': |
| 566 | case '"': |
| 567 | /* case '/': subdirectory */ |
| 568 | case '\\': |
| 569 | case '|': |
| 570 | case '?': |
| 571 | case '*': |
| 572 | /* Not recommanded */ |
| 573 | case '[': |
| 574 | case ']': |
| 575 | case ';': |
| 576 | case ',': |
| 577 | case '+': |
| 578 | case '=': |
| 579 | return '_'; |
| 580 | } |
| 581 | /* 'a' */ |
| 582 | if(car>=224 && car<=230) |
| 583 | return 'a'; |
| 584 | /* 'c' */ |
| 585 | if(car==231) |
| 586 | return 'c'; |
| 587 | /* 'e' */ |
| 588 | if(car>=232 && car<=235) |
| 589 | return 'e'; |
| 590 | /* 'i' */ |
| 591 | if(car>=236 && car<=239) |
| 592 | return 'n'; |
| 593 | /* n */ |
| 594 | if(car==241) |
| 595 | return 'n'; |
| 596 | /* 'o' */ |
| 597 | if((car>=242 && car<=246) || car==248) |
| 598 | return 'o'; |
| 599 | /* 'u' */ |
| 600 | if(car>=249 && car<=252) |
| 601 | return 'u'; |
| 602 | /* 'y' */ |
| 603 | if(car>=253) |
| 604 | return 'y'; |
| 605 | return car; |
| 606 | } |
| 607 | |
| 608 | /* |
| 609 | * filename_convert reads a maximum of n and writes a maximum of n+1 bytes |