Ignore:
Timestamp:
Mar 16, 2002, 8:53:47 AM (23 years ago)
Author:
umoeller
Message:

Misc updates for Unicode.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/encodings/base.h

    r97 r147  
    1616    /*
    1717     *@@ XWPENCODINGMAP:
    18      *      entry in an 8-bit to Unicode conversion table.
     18     *      entry in a codepage-to-Unicode conversion table.
    1919     */
    2020
    2121    typedef struct _XWPENCODINGMAP
    2222    {
    23         unsigned short      usFrom;
     23        unsigned short      usCP;
    2424        unsigned short      usUni;
    2525    } XWPENCODINGMAP, *PXWPENCODINGMAP;
    2626
    2727    /*
    28      *@@ XWPENCODINGID:
     28     *@@ ENCID:
    2929     *      enum identifying each encoding set which is
    3030     *      generally supported. Each ID corresponds to
     
    3232     */
    3333
    34     typedef enum _XWPENCODINGID
     34    typedef enum _ENCID
    3535    {
     36        UNSUPPORTED,
    3637        enc_cp437,
    3738        enc_cp737,
     
    5455        enc_cp949,
    5556        enc_cp950,
     57        enc_cp1004,     // added V0.9.18 (2002-03-08) [umoeller]
    5658        enc_cp1250,
    5759        enc_cp1251,
     
    7678        enc_iso8859_14,
    7779        enc_iso8859_15
    78     } XWPENCODINGID;
     80    } ENCID;
     81
     82    /*
     83     *@@ CONVERSION:
     84     *
     85     *@@added V0.9.18 (2002-03-08) [umoeller]
     86     */
     87
     88    typedef struct _CONVERSION
     89    {
     90        ENCID   EncodingID;
     91
     92        // to get Unicode for character 123 in the specific
     93        // encoding, do pTable->ausEntriesUniFromCP[123].
     94        // If you get 0xFFFF, the encoding is undefined.
     95        unsigned short  usHighestCP;
     96        unsigned short  *ausEntriesUniFromCP;  // usHighestCP + 1 entries
     97
     98        // to get codepage for unicode character 123,
     99        // do pTable->ausEntriesCPFromUni[123].
     100        // If you get 0xFFFF, the encoding is undefined.
     101        unsigned short  usHighestUni;
     102        unsigned short  *ausEntriesCPFromUni;   // usHighestUni + 1 entries
     103
     104    } CONVERSION, *PCONVERSION;
     105
     106    typedef enum _ENCBYTECOUNT
     107    {
     108        SINGLE,
     109        DOUBLE,
     110        EBCDIC,
     111        MULTI_UNICODE,
     112        UNKNOWN
     113    } ENCBYTECOUNT;
     114
     115    ENCID encFindIdForCodepage(unsigned short usCodepage,
     116                                       const char **ppcszDescription,
     117                                       ENCBYTECOUNT *pByteCount);
     118
     119    PCONVERSION encCreateCodec(ENCID id);
     120
     121    void encFreeCodec(PCONVERSION *ppTable);
     122
     123    unsigned long encChar2Uni(PCONVERSION pTable,
     124                              unsigned short c);
     125
     126    unsigned short encUni2Char(PCONVERSION pTable,
     127                               unsigned long ulUni);
    79128
    80129    unsigned long encDecodeUTF8(const char **ppch);
Note: See TracChangeset for help on using the changeset viewer.