Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  tcvteas1.tab   Sprache: unbekannt

 
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This file incorporates work covered by the following license notice:
 *
 *   Licensed to the Apache Software Foundation (ASF) under one or more
 *   contributor license agreements. See the NOTICE file distributed
 *   with this work for additional information regarding copyright
 *   ownership. The ASF licenses this file to you under the Apache
 *   License, Version 2.0 (the "License"); you may not use this file
 *   except in compliance with the License. You may obtain a copy of
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
 */

#include <sal/config.h>

#include "convertsimple.hxx"
#include "tenchelp.hxx"

/* ======================================================================= */

/* This file contain the tables for all 1 byte charsets, for the */
/* following scripts: asia (Thai, Vietnamese) and other exotic scripts */

/* ======================================================================= */

/* MS-874 */
/* Windows/Dos Standard CharSet for Thai */
/* 1-Byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/pc/cp874.txt from 04/15/98 Version 2.00 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS874UNI_START                  0x80
#define MS874UNI_END                    0xFB
sal_uInt16 const aImplMS874ToUniTab[MS874UNI_END - MS874UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x20AC,      0,      0,      0,      0, 0x2026,      0,      0, /* 0x80 */
         0,      0,      0,      0,      0,      0,      0,      0, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
         0,      0,      0,      0,      0,      0,      0,      0, /* 0x90 */
    0x00A0, 0x0E01, 0x0E02, 0x0E03, 0x0E04, 0x0E05, 0x0E06, 0x0E07, /* 0xA0 */
    0x0E08, 0x0E09, 0x0E0A, 0x0E0B, 0x0E0C, 0x0E0D, 0x0E0E, 0x0E0F, /* 0xA0 */
    0x0E10, 0x0E11, 0x0E12, 0x0E13, 0x0E14, 0x0E15, 0x0E16, 0x0E17, /* 0xB0 */
    0x0E18, 0x0E19, 0x0E1A, 0x0E1B, 0x0E1C, 0x0E1D, 0x0E1E, 0x0E1F, /* 0xB0 */
    0x0E20, 0x0E21, 0x0E22, 0x0E23, 0x0E24, 0x0E25, 0x0E26, 0x0E27, /* 0xC0 */
    0x0E28, 0x0E29, 0x0E2A, 0x0E2B, 0x0E2C, 0x0E2D, 0x0E2E, 0x0E2F, /* 0xC0 */
    0x0E30, 0x0E31, 0x0E32, 0x0E33, 0x0E34, 0x0E35, 0x0E36, 0x0E37, /* 0xD0 */
    0x0E38, 0x0E39, 0x0E3A,      0,      0,      0,      0, 0x0E3F, /* 0xD0 */
    0x0E40, 0x0E41, 0x0E42, 0x0E43, 0x0E44, 0x0E45, 0x0E46, 0x0E47, /* 0xE0 */
    0x0E48, 0x0E49, 0x0E4A, 0x0E4B, 0x0E4C, 0x0E4D, 0x0E4E, 0x0E4F, /* 0xE0 */
    0x0E50, 0x0E51, 0x0E52, 0x0E53, 0x0E54, 0x0E55, 0x0E56, 0x0E57, /* 0xF0 */
    0x0E58, 0x0E59, 0x0E5A, 0x0E5B                                  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS874CHAR_START                 0x0E01
#define MS874CHAR_END                   0x0E5B
unsigned char const aImplMS874ToCharTab[MS874CHAR_END - MS874CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
          0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x0E00 */
    0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x0E00 */
    0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x0E10 */
    0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x0E10 */
    0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x0E20 */
    0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, /* 0x0E20 */
    0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, /* 0x0E30 */
    0xD8, 0xD9, 0xDA,    0,    0,    0,    0, 0xDF, /* 0x0E30 */
    0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x0E40 */
    0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, /* 0x0E40 */
    0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, /* 0x0E50 */
    0xF8, 0xF9, 0xFA, 0xFB                          /* 0x0E50 */
};

/* ----------------------------------------------------------------------- */

#define MS874TOCHARTABEX_COUNT          10
ImplUniCharTabData const aImplMS874ToCharTabEx[MS874TOCHARTABEX_COUNT] =
{
  { 0x00A0, 0xA0, 0 },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x20AC, 0x80, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS874ByteCvtData =
{
    aImplMS874ToUniTab,
    nullptr,
    aImplMS874ToCharTab,
    nullptr,
    aImplMS874ToCharTabEx,
    MS874UNI_START, MS874UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS874CHAR_START, MS874CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS874TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS874TextEncodingData
    = { { &aImplMS874ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-1", /* TODO! correct? */
        "windows-874",
        1,
        1,
        1,
        222,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN/DOS/OS2, SCRIPT_THAI, pc code page 874, mac encoding 21 */

/* ======================================================================= */

/* TIS 620-2533
 *
 * A good source of information is <http://www.inet.co.th/cyberclub/trin/
 * thairef/index.html> as of 18 Mar 2002.
 *
 * Single byte encoding, from which MS874 is derived (although it is the other
 * way around in this implementation):
 *
 * 0x00--9F map to U+0000--009F
 * 0xA0 is questionable (unassigned or U+00A0 NO BREAK SPACE), to ease
 *      implementation, it maps to U+00A0
 * 0xA1--DA map to U+0E01--0E3A (TIS 620, same for MS874)
 * 0xDB--DE are unassigned (TIS 620, same for MS874)
 * 0xDF--FB map to U+0E3F--0E5B (TIS 620, same for MS874)
 * 0xFC--FF are unassigned (TIS 620, same for MS874)
 */

ImplByteConvertData const aImplTis620ByteCvtData =
{
    aImplMS874ToUniTab + (0xA0 - MS874UNI_START),
    aImpl8090SameToUniTab,
    aImplMS874ToCharTab,
    aImpl8090SameToCharTab,
    aImplMS874ToCharTabEx,
    0xA0, MS874UNI_END,
    SAME8090UNI_START, SAME8090UNI_END,
    MS874CHAR_START, MS874CHAR_END,
    SAME8090CHAR_START, SAME8090CHAR_END,
    1
};

ImplTextEncodingData const aImplTis620TextEncodingData
    = { { &aImplTis620ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-1", /* TODO! correct? */
        "TIS-620",
        1,
        1,
        1,
        222,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };

/* ======================================================================= */

/* MS-1258 */
/* Windows Standard CharSet for Vietnamease */
/* 1-Byte, 0x00-0x7F ASCII without exception */
/* Convert-Tables: mappings/vendors/micsft/windows/cp1258.txt from 04/15/98 Version 2.01 */
/* Last-Changes from us: */

/* ----------------------------------------------------------------------- */

#define MS1258UNI_START                 0x80
#define MS1258UNI_END                   0xFF
sal_uInt16 const aImplMS1258ToUniTab[MS1258UNI_END - MS1258UNI_START + 1] =
{
/*       0       1       2       3       4       5       6       7 */
/*       8       9       A       B       C       D       E       F */
    0x20AC,      0, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021, /* 0x80 */
    0x02C6, 0x2030,      0, 0x2039, 0x0152,      0,      0,      0, /* 0x80 */
         0, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014, /* 0x90 */
    0x02DC, 0x2122,      0, 0x203A, 0x0153,      0,      0, 0x0178, /* 0x90 */
    0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x00A4, 0x00A5, 0x00A6, 0x00A7, /* 0xA0 */
    0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00AF, /* 0xA0 */
    0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x00B6, 0x00B7, /* 0xB0 */
    0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, /* 0xB0 */
    0x00C0, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x00C5, 0x00C6, 0x00C7, /* 0xC0 */
    0x00C8, 0x00C9, 0x00CA, 0x00CB, 0x0300, 0x00CD, 0x00CE, 0x00CF, /* 0xC0 */
    0x0110, 0x00D1, 0x0309, 0x00D3, 0x00D4, 0x01A0, 0x00D6, 0x00D7, /* 0xD0 */
    0x00D8, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x01AF, 0x0303, 0x00DF, /* 0xD0 */
    0x00E0, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x00E5, 0x00E6, 0x00E7, /* 0xE0 */
    0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0301, 0x00ED, 0x00EE, 0x00EF, /* 0xE0 */
    0x0111, 0x00F1, 0x0323, 0x00F3, 0x00F4, 0x01A1, 0x00F6, 0x00F7, /* 0xF0 */
    0x00F8, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x01B0, 0x20AB, 0x00FF  /* 0xF0 */
};

/* ----------------------------------------------------------------------- */

#define MS1258CHAR_START                0x00A0
#define MS1258CHAR_END                  0x00FF
unsigned char const aImplMS1258ToCharTab[MS1258CHAR_END - MS1258CHAR_START + 1] =
{
/*     0     1     2     3     4     5     6     7 */
/*     8     9     A     B     C     D     E     F */
    0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, /* 0x00A0 */
    0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, /* 0x00A0 */
    0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, /* 0x00B0 */
    0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, /* 0x00B0 */
    0xC0, 0xC1, 0xC2,    0, 0xC4, 0xC5, 0xC6, 0xC7, /* 0x00C0 */
    0xC8, 0xC9, 0xCA, 0xCB,    0, 0xCD, 0xCE, 0xCF, /* 0x00C0 */
       0, 0xD1,    0, 0xD3, 0xD4,    0, 0xD6, 0xD7, /* 0x00D0 */
    0xD8, 0xD9, 0xDA, 0xDB, 0xDC,    0,    0, 0xDF, /* 0x00D0 */
    0xE0, 0xE1, 0xE2,    0, 0xE4, 0xE5, 0xE6, 0xE7, /* 0x00E0 */
    0xE8, 0xE9, 0xEA, 0xEB,    0, 0xED, 0xEE, 0xEF, /* 0x00E0 */
       0, 0xF1,    0, 0xF3, 0xF4,    0, 0xF6, 0xF7, /* 0x00F0 */
    0xF8, 0xF9, 0xFA, 0xFB, 0xFC,    0,    0, 0xFF  /* 0x00F0 */
};

/* ----------------------------------------------------------------------- */

/* The list of Vietnamese-relevant precomposed Unicode characters that map to
   MS1258 base + combining modifier are derived from the information present at
   <http://vietunicode.sourceforge.net/charset/>: */
#define MS1258TOCHARTABEX_COUNT         141
ImplUniCharTabData const aImplMS1258ToCharTabEx[MS1258TOCHARTABEX_COUNT] =
{
  { 0x00C3, 0x41, 0xDE },
  { 0x00CC, 0x49, 0xCC },
  { 0x00D2, 0x4F, 0xCC },
  { 0x00D5, 0x4F, 0xDE },
  { 0x00DD, 0x59, 0xEC },
  { 0x00E3, 0x61, 0xDE },
  { 0x00EC, 0x69, 0xCC },
  { 0x00F2, 0x6F, 0xCC },
  { 0x00F5, 0x6F, 0xDE },
  { 0x00FD, 0x79, 0xCC },
  { 0x0102, 0xC3, 0 },
  { 0x0103, 0xE3, 0 },
  { 0x0110, 0xD0, 0 },
  { 0x0111, 0xF0, 0 },
  { 0x0128, 0x49, 0xDE },
  { 0x0129, 0x69, 0xDE },
  { 0x0152, 0x8C, 0 },
  { 0x0153, 0x9C, 0 },
  { 0x0168, 0x55, 0xDE },
  { 0x0169, 0x75, 0xDE },
  { 0x0178, 0x9F, 0 },
  { 0x0192, 0x83, 0 },
  { 0x01A0, 0xD5, 0 },
  { 0x01A1, 0xF5, 0 },
  { 0x01AF, 0xDD, 0 },
  { 0x01B0, 0xFD, 0 },
  { 0x02C6, 0x88, 0 },
  { 0x02DC, 0x98, 0 },
  { 0x0300, 0xCC, 0 },
  { 0x0301, 0xEC, 0 },
  { 0x0303, 0xDE, 0 },
  { 0x0309, 0xD2, 0 },
  { 0x0323, 0xF2, 0 },
  { 0x1EA0, 0x41, 0xF2 },
  { 0x1EA1, 0x61, 0xF2 },
  { 0x1EA2, 0x41, 0xD2 },
  { 0x1EA3, 0x61, 0xD2 },
  { 0x1EA4, 0xC2, 0xEC },
  { 0x1EA5, 0xE2, 0xEC },
  { 0x1EA6, 0xC2, 0xCC },
  { 0x1EA7, 0xE2, 0xCC },
  { 0x1EA8, 0xC2, 0xD2 },
  { 0x1EA9, 0xE2, 0xD2 },
  { 0x1EAA, 0xC2, 0xDE },
  { 0x1EAB, 0xE2, 0xDE },
  { 0x1EAC, 0xC2, 0xF2 },
  { 0x1EAD, 0xE2, 0xF2 },
  { 0x1EAE, 0xC3, 0xEC },
  { 0x1EAF, 0xE3, 0xEC },
  { 0x1EB0, 0xC3, 0xCC },
  { 0x1EB1, 0xE3, 0xCC },
  { 0x1EB2, 0xC3, 0xD2 },
  { 0x1EB3, 0xE3, 0xD2 },
  { 0x1EB4, 0xC3, 0xDE },
  { 0x1EB5, 0xE3, 0xDE },
  { 0x1EB6, 0xC3, 0xF2 },
  { 0x1EB7, 0xE3, 0xF2 },
  { 0x1EB8, 0x45, 0xF2 },
  { 0x1EB9, 0x65, 0xF2 },
  { 0x1EBA, 0x45, 0xD2 },
  { 0x1EBB, 0x65, 0xD2 },
  { 0x1EBC, 0x45, 0xDE },
  { 0x1EBD, 0x65, 0xDE },
  { 0x1EBE, 0xCA, 0xEC },
  { 0x1EBF, 0xEA, 0xEC },
  { 0x1EC0, 0xCA, 0xCC },
  { 0x1EC1, 0xEA, 0xCC },
  { 0x1EC2, 0xCA, 0xD2 },
  { 0x1EC3, 0xEA, 0xD2 },
  { 0x1EC4, 0xCA, 0xDE },
  { 0x1EC5, 0xEA, 0xDE },
  { 0x1EC6, 0xCA, 0xF2 },
  { 0x1EC7, 0xEA, 0xF2 },
  { 0x1EC8, 0x49, 0xD2 },
  { 0x1EC9, 0x69, 0xD2 },
  { 0x1ECA, 0x49, 0xF2 },
  { 0x1ECB, 0x69, 0xF2 },
  { 0x1ECC, 0x4F, 0xF2 },
  { 0x1ECD, 0x6F, 0xF2 },
  { 0x1ECE, 0x4F, 0xD2 },
  { 0x1ECF, 0x6F, 0xD2 },
  { 0x1ED0, 0xD4, 0xEC },
  { 0x1ED1, 0xF4, 0xEC },
  { 0x1ED2, 0xD4, 0xCC },
  { 0x1ED3, 0xF4, 0xCC },
  { 0x1ED4, 0xD4, 0xD2 },
  { 0x1ED5, 0xF4, 0xD2 },
  { 0x1ED6, 0xD4, 0xDE },
  { 0x1ED7, 0xF4, 0xDE },
  { 0x1ED8, 0xD4, 0xF2 },
  { 0x1ED9, 0xF4, 0xF2 },
  { 0x1EDA, 0xD5, 0xEC },
  { 0x1EDB, 0xF5, 0xEC },
  { 0x1EDC, 0xD5, 0xCC },
  { 0x1EDD, 0xF5, 0xCC },
  { 0x1EDE, 0xD5, 0xD2 },
  { 0x1EDF, 0xF5, 0xD2 },
  { 0x1EE0, 0xD5, 0xDE },
  { 0x1EE1, 0xF5, 0xDE },
  { 0x1EE2, 0xD5, 0xF2 },
  { 0x1EE3, 0xF5, 0xF2 },
  { 0x1EE4, 0x55, 0xF2 },
  { 0x1EE5, 0x75, 0xF2 },
  { 0x1EE6, 0x55, 0xD2 },
  { 0x1EE7, 0x75, 0xD2 },
  { 0x1EE8, 0xDD, 0xEC },
  { 0x1EE9, 0xFD, 0xEC },
  { 0x1EEA, 0xDD, 0xCC },
  { 0x1EEB, 0xFD, 0xCC },
  { 0x1EEC, 0xDD, 0xD2 },
  { 0x1EED, 0xFD, 0xD2 },
  { 0x1EEE, 0xDD, 0xDE },
  { 0x1EEF, 0xFD, 0xDE },
  { 0x1EF0, 0xDD, 0xF2 },
  { 0x1EF1, 0xFD, 0xF2 },
  { 0x1EF2, 0x59, 0xCC },
  { 0x1EF3, 0x79, 0xCC },
  { 0x1EF4, 0x59, 0xF2 },
  { 0x1EF5, 0x79, 0xF2 },
  { 0x1EF6, 0x59, 0xD2 },
  { 0x1EF7, 0x79, 0xD2 },
  { 0x1EF8, 0x59, 0xDE },
  { 0x1EF9, 0x79, 0xDE },
  { 0x2013, 0x96, 0 },
  { 0x2014, 0x97, 0 },
  { 0x2018, 0x91, 0 },
  { 0x2019, 0x92, 0 },
  { 0x201A, 0x82, 0 },
  { 0x201C, 0x93, 0 },
  { 0x201D, 0x94, 0 },
  { 0x201E, 0x84, 0 },
  { 0x2020, 0x86, 0 },
  { 0x2021, 0x87, 0 },
  { 0x2022, 0x95, 0 },
  { 0x2026, 0x85, 0 },
  { 0x2030, 0x89, 0 },
  { 0x2039, 0x8B, 0 },
  { 0x203A, 0x9B, 0 },
  { 0x20AB, 0xFE, 0 },
  { 0x20AC, 0x80, 0 },
  { 0x2122, 0x99, 0 }
};

/* ----------------------------------------------------------------------- */

ImplByteConvertData const aImplMS1258ByteCvtData =
{
    aImplMS1258ToUniTab,
    nullptr,
    aImplMS1258ToCharTab,
    nullptr,
    aImplMS1258ToCharTabEx,
    MS1258UNI_START, MS1258UNI_END,
    NOTABUNI_START, NOTABUNI_END,
    MS1258CHAR_START, MS1258CHAR_END,
    NOTABCHAR_START, NOTABCHAR_END,
    MS1258TOCHARTABEX_COUNT
};

/* ----------------------------------------------------------------------- */

ImplTextEncodingData const aImplMS1258TextEncodingData
    = { { &aImplMS1258ByteCvtData,
          sal::detail::textenc::convertCharToUnicode,
          sal::detail::textenc::convertUnicodeToChar,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr,
          nullptr },
        "iso8859-1", /* TODO! correct? */
        "windows-1258",
        1,
        2,
        1,
        163,
        RTL_TEXTENCODING_INFO_ASCII | RTL_TEXTENCODING_INFO_MIME };
    /* WIN, SCRIPT_VIETNAMESE, mac encoding 30 */

[ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge