|
BurgerLib
|
Conversion routines to support the ISOLatin1 text encoding scheme. More...
#include <ststring.h>
Public Types | |
| enum | { BAD = -1 } |
Static Public Member Functions | |
| static Word BURGER_API | FromUTF8 (const char *pInput) |
| Convert a single UTF8 stream character into a ISOLatin1 8 bit char. | |
| static Word BURGER_API | FromUTF8 (char *pOutput, WordPtr uOutputSize, const char *pInput) |
| Convert a UTF8 stream into a ISOLatin1 "C" string. | |
| static Word BURGER_API | FromUTF8 (char *pOutput, WordPtr uOutputSize, const char *pInput, WordPtr uInputSize) |
| Convert a UTF8 stream into a ISOLatin1 byte array. | |
Static Public Attributes | |
| static const Word8 | UpperCaseTable [256] |
| Table to convert all characters to upper case. | |
| static const Word8 | LowerCaseTable [256] |
| Table to convert all characters to lower case. | |
Conversion routines to support the ISOLatin1 text encoding scheme.
ISOLatin1 is a high ASCII encoding that's used by the ISO 9660 file system for CD-ROM and DVD-ROMs. This class will allow the conversion of other character mappings to ISOLatin1 for use obtaining the proper filenames on read only media.
The character map for ISOLatin1 looks like this. Click here.
| anonymous enum |
| Word BURGER_API Burger::ISOLatin1::FromUTF8 | ( | const char * | pInput | ) | [static] |
Convert a single UTF8 stream character into a ISOLatin1 8 bit char.
Take up 3 bytes from a UTF8 stream and return the unsigned 8 bit value of the ISOLatin1 character. Codes 0 through 0x7f are considered ASCII while codes 0x80 through 0xFF are mapped to ISOLatin1. If the UTF8 character cannot be mapped to ISOLatin1 encoding, Burger::ISOLatin1::BAD will be returned instead.
| pInput | Pointer to UTF8 buffer that contains the 1 to 2 byte buffer to convert. NULL will page fault. |
| Word BURGER_API Burger::ISOLatin1::FromUTF8 | ( | char * | pOutput, |
| WordPtr | uOutputSize, | ||
| const char * | pInput | ||
| ) | [static] |
Convert a UTF8 stream into a ISOLatin1 "C" string.
Take a "C" string that is using UTF8 encoding and convert it into a ISOLatin1 encoded "C" string. The function will return the size of the string after encoding. This size is valid, even if it exceeded the output buffer size. The output pointer and size can be null to have this routine calculate the size of the possible output so the application can allocate a buffer large enough to hold it.
| pOutput | Pointer to byte buffer to receive the ISOLatin1 encoded string. NULL is okay if uOutputSize is zero, otherwise it will page fault. |
| uOutputSize | Size of the output buffer in bytes. |
| pInput | A UTF8 encoded "C" string. NULL will page fault. |
| Word BURGER_API Burger::ISOLatin1::FromUTF8 | ( | char * | pOutput, |
| WordPtr | uOutputSize, | ||
| const char * | pInput, | ||
| WordPtr | uInputSize | ||
| ) | [static] |
Convert a UTF8 stream into a ISOLatin1 byte array.
Take a byte array that is using UTF8 encoding and convert it to a ISOLatin1 encoded "C" string. The function will return the size of the string after encoding. This size is valid, even if it exceeded the output buffer size. The output pointer and size can be null to have this routine calculate the size of the possible output so the application can allocate a buffer large enough to hold it.
| pOutput | Pointer to a byte buffer to receive the ISOLatin1 string. NULL is okay if uOutputSize is zero, outwise a page fault will occur. |
| uOutputSize | Size of the output buffer in bytes. |
| pInput | UTF8 encoded byte array. NULL is okay if uInputSize is zero. |
| uInputSize | Size of the input byte array. |
const Word8 Burger::ISOLatin1::LowerCaseTable [static] |
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
0x40,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x5B,0x5C,0x5D,0x5E,0x5F,
0x60,0x61,0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D,0x6E,0x6F,
0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x7B,0x7C,0x7D,0x7E,0x7F,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xD7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xDF,
0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF
}
Table to convert all characters to lower case.
Using ISOLatin1 mapping, this table will convert all 256 codes into their lower case equivalents.
const Word8 Burger::ISOLatin1::UpperCaseTable [static] |
{
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xF7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xFF
}
Table to convert all characters to upper case.
Using ISOLatin1 mapping, this table will convert all 256 codes into their upper case equivalents.
1.8.0