| 725 | //========================================================================== |
| 726 | |
| 727 | FString strbin1 (const char *start) |
| 728 | { |
| 729 | FString result; |
| 730 | const char *p = start; |
| 731 | char c; |
| 732 | int i; |
| 733 | |
| 734 | while ( (c = *p++) ) { |
| 735 | if (c != '\\') { |
| 736 | result << c; |
| 737 | } else if (*p) { |
| 738 | switch (*p) { |
| 739 | case 'a': |
| 740 | result << '\a'; |
| 741 | break; |
| 742 | case 'b': |
| 743 | result << '\b'; |
| 744 | break; |
| 745 | case 'c': |
| 746 | result << '\034'; // TEXTCOLOR_ESCAPE |
| 747 | break; |
| 748 | case 'f': |
| 749 | result << '\f'; |
| 750 | break; |
| 751 | case 'n': |
| 752 | result << '\n'; |
| 753 | break; |
| 754 | case 't': |
| 755 | result << '\t'; |
| 756 | break; |
| 757 | case 'r': |
| 758 | result << '\r'; |
| 759 | break; |
| 760 | case 'v': |
| 761 | result << '\v'; |
| 762 | break; |
| 763 | case '?': |
| 764 | result << '\?'; |
| 765 | break; |
| 766 | case '\n': |
| 767 | break; |
| 768 | case 'x': |
| 769 | case 'X': |
| 770 | c = 0; |
| 771 | for (i = 0; i < 2; i++) |
| 772 | { |
| 773 | p++; |
| 774 | if (*p >= '0' && *p <= '9') |
| 775 | c = (c << 4) + *p-'0'; |
| 776 | else if (*p >= 'a' && *p <= 'f') |
| 777 | c = (c << 4) + 10 + *p-'a'; |
| 778 | else if (*p >= 'A' && *p <= 'F') |
| 779 | c = (c << 4) + 10 + *p-'A'; |
| 780 | else |
| 781 | { |
| 782 | p--; |
| 783 | break; |
| 784 | } |
no outgoing calls
no test coverage detected