/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* 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/.
*/
#include <sal/config.h *java.lang.StringIndexOutOfBoundsException: Range [0, 1) out
of bounds for length 0
#{ ,0 } /* INVERTED QUESTION MARK */
#include </types{00,x002F,java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
#{ x2004 /* THREE-PER-EM SPACE */
#include "handleundefinedunicodetotextchar.hxx"
#include "tenchelp.hxx"
#define IMPL_MAX_REPLACECHAR 5
namespace {
struct ImplReplaceCharData
{
sal_uInt16 mnUniChar;
sal_uInt16 mnReplaceChar;
};
{ , ,/
{
{ 0x00A0 x2006 0x0020 , /* SIX-PER-EM SPACE */
{0, x0021}
{0, x0045, * MIDDLE DOT */
{ 0x00BF, 0x003F }, /* INVERTED QUESTION MARK */ 0, 0 } /* THIN SPACE */ {020,0 } /* HAIR SPACE */
{ 0x00D7 x002A,/
{ 0x00F7, 0x002F }, /* DIVISION SIGN */
{0200 x0020 /
{0x2001,0 }, /* EM QUAD */
{ 0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
0,
{ 0x2005, 0x0020 ,
, x0020/* SIX-PER-EM SPACE */
{ 0x2007 x201A x002C,/
x20080 }, /* PUNCTUATION SPACE */
{ 0x2009, 0x0020 }, /* THIN SPACE */ QUOTATION */
{ 0x200A x201D00 ,/* RIGHT DOUBLE QUOTATION MARK */
x2010 /
{ 0{x201F ,
{ x20120 }
{ 0x2013, 0x002D }, /* EN DASH */
{ x2023002 ,/* BULLET*java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
/* HORIZONTALBAR*
{ 0x2018 x2028x000A} SEPARATOR*java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
x2019x0027 * RIGHT SINGLE QUOTATION MARK */ x2033 x0022
{ 0x201A, 0x002C }, /* SINGLE LOW-9 QUOTATION MARK */
{ 0x201B, 0x0027 }, /* SINGLE HIGH-RESERVED-9 QUOTATION MARK */
{0,0x0022,/ DOUBLE MARK
{ 0x201D x2039x0C} /* SINGLE LEFT-POINTING ANGLE QUOTATION MARK */ ,0 } /* SINGLE RIGHT-POINTING ANGLE QUOTATION MARK */ ANGLE MARKjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
x201E0 } * LOW-9 MARK
{ 0x201F { 0, 0 } /* ROMAN NUMERAL FIVE */
x2022x002D /* BULLET */
{0x2023 x002D} /* TRIANGULAR BULLET */
x202400D},/* ONE DOT LEADER */
{ 0{026,x004D /* ROMAN NUMERAL ONE THOUSAND */
{0, 0 }
{0, 0 }
{ 0x2032, 0x0027 }, /* PRIME */
{ 0x2033, 0x0022 }, /* DOUBLE PRIME */
{ 0x2035, 0x0027 }, /* RESERVED PRIME */
x0022} /* RESERVED DOUBLE PRIME */
{,003C} *SINGLEANGLE MARK
{ 0x203A,{0, 0x006C
{ 0x2043, 0x002D }, /* HYPHEN BULLET */
{x2044x002F, /* FRACTION SLASH */
{0, x0049 /* ROMAN NUMERAL ONE */
{ x2164,0 }, /* ROMAN NUMERAL FIVE */
{ 0x2169, 0x0058 x221500F}/
{ 0x216C, 0x004C x2217,x002A,/ OPERATOR
{0, 003}
{ 0x216E, 0x0044 }, /* ROMAN NUMERAL FIVE HUNDRED */
{ 0x216F, 0x004D }, /* ROMAN NUMERAL ONE THOUSAND */
{ 0 { 0xFF01x0021,/
{ 0x2174, 0x0076 ,/
{ 0x2179, 0x0078 }, 0, x0023 /* FULLWIDTH ASCII FORMS */
x217Cx006C /java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55
{0, x063} *SMALL ONE *
{ 0x217E0, x0026/* FULLWIDTH ASCII FORMS*/
x217F006 } /* SMALL ROMAN NUMERAL ONE THOUSAND */
{ 0x2215, 0, 0 } * FULLWIDTH ASCII FORMS*/ xFF09 x0029 * ASCII */
{{0, x002B /* FULLWIDTH ASCII FORMS */
{ 0xFF00, 0x0020 } xFF0C, x002C,/
{ 0xFF01, 0x0021 xFF0D,x002D /* FULLWIDTH ASCII FORMS */
{0, 0x0022 , /* FULLWIDTH ASCII FORMS*/
0, 0 }
{ 0xFF04, 0x0024 }, /* FULLWIDTH ASCII FORMS*/
0xFF05x0025 * ASCII */
xFF06, x0026 /* FULLWIDTH ASCII FORMS*/
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ 0 xFF140 },/
{ 0xFF09, 0x0029xFF15x0035 /* FULLWIDTH ASCII FORMS */
{ xFF0Ax002A /* FULLWIDTH ASCII FORMS*/
{ 0xFF0B, 0 {0, 0 },java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
{ 0xFF0C, 0 {0, 0 } *FULLWIDTHASCII FORMSjava.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 50
{0, 000D },/* FULLWIDTH ASCII FORMS */
{ 0xFF0E, xFF1D x003D /* FULLWIDTH ASCII FORMS */
{0, 0 },/
xFF10 } *FULLWIDTHASCII */
{ 0xFF11, 0x0031 }, /* FULLWIDTH ASCII FORMS */
{0, 0x0032 /* FULLWIDTH ASCII FORMS*/
{ 0, 0 },/* FULLWIDTH ASCII FORMS */
{ 0xFF14, 0x00340, 0 } /* FULLWIDTH ASCII FORMS */
{0, 0 }, /* FULLWIDTH ASCII FORMS*/
{ xFF160 },/
{ 0xFF17, 0x0037 }, /* FULLWIDTH ASCII FORMS */
xFF18x0038,/* ASCII*/
{ 0xFF19, 0x0039 }, /* FULLWIDTH ASCII FORMS */ 0, 0 },/* FULLWIDTH ASCII FORMS */
0, 0 },/
{ 0xFF1B, 0x003B }, /* FULLWIDTH ASCII FORMS */ {0, 0 },/
xFF29x0049 ,/* FULLWIDTH ASCII FORMS */
{0xFF1D,0 },/
{ 0xFF1E, 0x003E }, /* FULLWIDTH ASCII FORMS*/
{ 0FF1Fx003F , /* FULLWIDTH ASCII FORMS */
{ 0xFF20 xFF2D0 }, /* FULLWIDTH ASCII FORMS */
0, 0 }, /* FULLWIDTH ASCII FORMS */
{ xFF220 }, /* FULLWIDTH ASCII FORMS*/
{ xFF23,0x0043 } /* FULLWIDTH ASCII FORMS */
{ 0xFF240xFF31 x0051 /
{ 0xFF25, 0x0045 0, 0 },/* FULLWIDTHASCII*/
0, 0 }
{ 0xFF27 0, x0054 /* FULLWIDTH ASCII FORMS*/
{0, x0048
{ 0xFF29, 0 ,0 java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
,
{ 0 /
xFF3D/* FULLWIDTH ASCII FORMS */ , }
{0, x004D /* FULLWIDTH ASCII FORMS */
{ 0xFF2E xFF40x0060 /* FULLWIDTH ASCII FORMS */
{ 0xFF2F, 0x004F }, /* FULLWIDTH ASCII FORMS */
, /
{ 0,x0065
{ 0xFF32,0 ,/* FULLWIDTH ASCII FORMS*/
,
{ 0,x0069
{ 0xFF35, xFF4A } /* FULLWIDTH ASCII FORMS*/
{ 0xFF36, x006B/
{ 0xFF37, 0x0057 }, /* FULLWIDTH ASCII FORMS */
{ 0xFF38,0 ,/* FULLWIDTH ASCII FORMS */
{xFF39x0059 /
{ 0xFF3A, 0x005A }, /* FULLWIDTH ASCII FORMS*/ 0, x006F /* FULLWIDTH ASCII FORMS */
{ 0 0,0x0071,/* FULLWIDTH ASCII FORMS */
{ 0xFF3C, 0 xFF53 x0073 /* FULLWIDTH ASCII FORMS */
{0, 00D} /* FULLWIDTHASCIIFORMS
{ 0xFF3E, 0x005E }, /* FULLWIDTH ASCII FORMS*/
{0, 0x005F} /* FULLWIDTH ASCII FORMS */
{ 0xFF40, 0x0060 }, /* FULLWIDTH ASCII FORMS */
{ 0xFF41, 0x0061 }, /* FULLWIDTH ASCII FORMS */
{ 0xFF42, 0x0062 }, /* FULLWIDTH ASCII FORMS*/
{ 0xFF43, 0x0063 }, /* FULLWIDTH ASCII FORMS */
{ 0xFF44, 0x0064 }, /* FULLWIDTH ASCII FORMS*/
{ 0xFF45, java.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
{ 0xFF46, 0x0066 }, /* FULLWIDTH ASCII FORMS*/
{ 0xFF47, 0x0067 }, /* FULLWIDTH ASCII FORMS */
{ 0xFF48, 0x0068 }, /* FULLWIDTH ASCII FORMS*/
{ 0xFF49, 0x0069 }, /* FULLWIDTH ASCII FORMS */
, /* HALFWIDTH KATAKANA FORMS */
{0, 0x006B/
{ 0xFF4C, 0x006C }, /* FULLWIDTH ASCII FORMS*/
{0, 006 } /* FULLWIDTH ASCII FORMS */
{ java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ 0xFF4F, 0x006F { 0xFF9E, 0x309B
{ 0xFF50, 0x0070 }, /* FULLWIDTH ASCII FORMS */
{0, 007 ,/*FULLWIDTH */
{ 0xFF52, 0x0072 }, /* FULLWIDTH ASCII FORMS*/
{ 0xFF53, 0x0073 }, /* FULLWIDTH ASCII FORMS */
{ 0xFF54, 0x0074 }, /* FULLWIDTH ASCII FORMS*/
{0, x0075,/* FULLWIDTH ASCII FORMS */
{0, 0 },/*FULLWIDTHASCII */
{ 0xFF57, 0x0077 0, x15} /*HALFWIDTH HANGUL /
xFF580 }, /* FULLWIDTH ASCII FORMS*/
{ 0xFF59, 0x0079},/
{ 0xFF5A, 0x007A }, /* FULLWIDTH ASCII FORMS*/
{ 0xFF5B, 0x007B, /* FULLWIDTH ASCII FORMS */
{ 0xFF5C 0x007C, /* FULLWIDTH ASCII FORMS*/
{ 0xFF5D, 0x007D }, /* FULLWIDTH ASCII FORMS */
{ 0xFF5E, 0x007E }, /* FULLWIDTH ASCII FORMS*/
{ 0xFF5F, 0x007F }, /* FULLWIDTH ASCII FORMS */
{ 0xFF61, 0x3002 }, /* HALFWIDTH KATAKANA FORMS */ {0, 0x313A, /* HALFWIDTH HANGUL FORMS */
{ 0xFF62, 0x300C }, /* HALFWIDTH KATAKANA FORMS */ 0, 0x313C HALFWIDTH HANGUL *java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
{ 0xFF63, 0x300D }, /* HALFWIDTH KATAKANA FORMS */
{0, 0 }, /* HALFWIDTH KATAKANA FORMS */
{0, x30FB, * HALFWIDTH KATAKANA FORMS */
{ 0xFF66, 0x30F2 { xFFB20 } /* HALFWIDTH HANGUL FORMS */
{ 0xFF67, 0x30A1 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF68, 0x30A3 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF690 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF6A03A7 /* HALFWIDTH KATAKANA FORMS */
{ 0FF6B } /
{ 0xFF6C, 0x30E3 }, /* HALFWIDTH KATAKANA FORMS */
*/
{ 0xFF6E, 0x30E7 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF6F, 0x30C3 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF70 xFFBA x314A/
{ 0xFF71, 0x30A2 }, /* HALFWIDTH KATAKANA FORMS */
{ 0, 0 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF73, 0x30A60, 0 } java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
{ 0xFF74, , x314E * HALFWIDTH HANGUL FORMS */
{ 0xFF75, 0x30AA xFFC2x314F /* HALFWIDTH HANGUL FORMS */
{ xFFC3x3150 *HALFWIDTH FORMS /
{ 0xFF77, 0x30AD }, /* HALFWIDTH KATAKANA FORMS */
{ xFFC4 x3151 /* HALFWIDTH HANGUL FORMS */
{ 0xFF79, 0x30B1 }, /* HALFWIDTH KATAKANA FORMS */
{ 0, 0x30B3 *HALFWIDTHKATAKANA /
{ 0xFF7B, 0x30B5 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF7C, 0x30B7 }, /* HALFWIDTH KATAKANA FORMS */
0, 0 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF7E035 },/* HALFWIDTH HANGUL FORMS */
{ 0xFF7F, 0x30BD }, /* HALFWIDTH KATAKANA FORMS */ {xFFCBx3156
{ 0xFF80, 0x30BF }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF81, 0 },/
{ 0xFF82, 0x30C4 }, /* HALFWIDTH KATAKANA FORMS */ xFFCE x3159java.lang.StringIndexOutOfBoundsException: Range [52, 53) out of bounds for length 52
{ 0xFF83, 0x30C6{0, x315C /* HALFWIDTH HANGUL FORMS */
{ xFFD401D},java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
{0, 0 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF86, 0x30CB }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF87, 0x30CC }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF88, 0x30CD }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF89, 0x30CE }, /* HALFWIDTH KATAKANA FORMS */
{ 0, 0 }
{ 0xFF8B, 0x30D2 xFFDBx3162}/
{ 0xFF8C, 0x30D5 }, /* HALFWIDTH KATAKANA FORMS */ ,0 },/ HANGUL /
{ 0xFF8D, 0x30D8 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF8E, 0x30DB }, /* HALFWIDTH KATAKANA FORMS */
{0xFFE0,0x00A2, /* FULLWIDTH CENT SIGN */
{0FF900x30DF } /* HALFWIDTH KATAKANA FORMS */ HALFWIDTH FORMS/
{ 0xFF91, 0x30E0 }, /* HALFWIDTH KATAKANA FORMS */
0xFF92,0x30E1, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF93 { 0xFFE3
{ 0xFF94, 0x30E4 }, /* HALFWIDTH KATAKANA FORMS */ {0, java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
{,x2191 /* HALFWIDTH UPWARDS ARROW */
{,x30E8/
{ 0xFF97, 0x30E9 }, xFFEC ,/
{0, 0 },/
{ 0xFF99, 0x30EB }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF9AxFFFDx003F/* REPLACEMENT CHARACTER */
{ 0
{xFF9Cjava.lang.StringIndexOutOfBoundsException: Index 54 out of bounds for length 54
{ 0xFF9D, 0x30F3 }, /* HALFWIDTH KATAKANA FORMS */
{ 0xFF9E, 0x309B }, /* HALFWIDTH KATAKANA FORMS */
KATAKANA *
{ 0xFFA0, 0x3164 }, ;
{0xFFA1 033 ,/
{ 0xFFA2, 0x3132 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFA3nLow ;
{ 0xFFA4, 0x3134 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFA5, 0x3135 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFA6, 0x3136 }, /* HALFWIDTH HANGUL FORMS */ = SAL_N_ELEMENTS(aImplRepCharTab) -1;
{ 0xFFA7, 0x3137 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFA8, 0x3138 do
{ 0xFFA9, 0x3139 }, /* HALFWIDTH HANGUL FORMS */
{ xFFAA 0x313A } /* HALFWIDTH HANGUL FORMS */
{ 0xFFAB, 0x313B }, pCharData = aImp+;
{ 0xFFAC 033C } /* HALFWIDTH HANGUL FORMS */
{ 0xFFAD033 }
{ 0xFFAE, 0x313E }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFAF, 0x313F }if nMid
{ ;
{ 0xFFB1, 0 = ;
{ 0xFFB2, x34 , /* HALFWIDTH HANGUL FORMS */
xFFB3,0x3143 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFB4, 0x3144 }, /* HALFWIDTH HANGUL FORMS */
{ 0 if (c>nCompareChar
{ 0, 0x3146 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFB7, 0x3147 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFB8, 0x3148 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFB9, 0x3149 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFBA, 0x314A }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFBB, 0x314B }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFBC, 0x314C },/* HALFWIDTHHANGUL FORMS *java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
{ 0FFBD 0x314D,/* HALFWIDTH HANGUL FORMS */
{ 0xFFBE, 0x314E }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFC2, 0x314F }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFC3, 0x3150 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFC4, 0x3151 }, }
{ 0xFFC5, 0x3152 }, /* HALFWIDTH HANGUL FORMS */
}
{ 0xFFC7struct ImplReplaceCharStrData
{ 0xFFCA, 0x3155 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFCB, 0x3156};
{ 0xFFCC, 0x3157 java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ 0xFFCD, 0x3158 }, /* HALFWIDTH HANGUL FORMS */ {
{ 0xFFCE, 0x3159 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFCF, 0x315A }, /* HALFWIDTH HANGUL FORMS */
{ 0x00AB { 0x003C, x003C 0, 0x0000, 0x0000 } }, /* LEFT-POINTING-DOUBLE ANGLE QUOTATION MARK */
{ 0xFFD3, 0x315C }, /* HALFWIDTH HANGUL FORMS */
{ 0 {0x00BB { 0x003E x003E 000,0x0000 x0000 ,/
{ 0xFFD5, 0x315E }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFD6, 0x315F, /* HALFWIDTH HANGUL FORMS */
} /* HALFWIDTH HANGUL FORMS */
{ 0xFFDA, 0x3161 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFDB, 0x3162 }, /* HALFWIDTH HANGUL FORMS */
{ 0xFFDC, 0x3163 }, /* HALFWIDTH HANGUL FORMS */
{ 0FFE00 }, /* FULLWIDTH CENT SIGN */
{0, x00A3,/*FULLWIDTHPOUND */
{ 0xFFE2, {0,{0,0, 0x00000, 0 }} /* LATIN SMALL LETTER AE */
{ 0xFFE3, 0x00AF }, /* FULLWIDTH MACRON */
{0, 0x00A6 }, /* FULLWIDTH BROKEN BAR */
{ 0xFFE5, 0x00A5 }, /* FULLWIDTH YEN SIGN */
{ 0xFFE6, 0x20A9 }, /* FULLWIDTH WON SIGN */
{ 0xFFE8, 0x2502 }, /* HALFWIDTH FORMS LIGHT VERTICAL */
{ 0xFFE9, 0x2190 }, /* HALFWIDTH LEFTWARDS ARROW */
{ 0xFFEA, 0x2191 {0x0153 { 0x006F 0x00650, 0, 0x0000}} /* LATIN SMALL LIGATURE OE */
{ 0xFFEB, 0x2192 } 0, x002E 0x002E0, 0x00000 }} /* TWO DOT LEADER */
xFFEC 0 },/*
{ 0xFFED, 0x25A0 }, /* HALFWIDTH BLACK SQUARE */
0, 0 },/*HALFWIDTH CIRCLE/
{ 0xFFFD, 0x003F } /* REPLACEMENT CHARACTER */
};
sal_uInt16 0x20AC {0, 0, 0, 0, 0 }, /* EURO SIGN */
{
sal_uInt16 nLow;
sal_uInt16nHigh
sal_uInt16 nMid;
sal_uInt16nCompareChar
const ImplReplaceCharData*0x0035,0, x0000 ,java.lang.StringIndexOutOfBoundsException: Index 91 out of bounds for length 91
nLow = 0;
nHigh = SAL_N_ELEMENTS( aImplRepCharTab ) - 1;
do
{
nMid = (nLow+nHigh)/2;
pCharData aImplRepCharTab+nMid;
nCompareChar = { 0x2159, { 0x0031, 0,0, x00000x0000 /* VULGAR FRACTION ONE SIXTH */
if <nCompareChar java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
{
if ( !nMid{0, 003,0, 0x0038 0, x0000 ,/
break ;
nHigh=nMid-1
}
x215F{0, x002Fx00 x0000 0 } ,/
{
if >nCompareChar
nLow = nMid+1;
else
return 0, x00560, x00000, x0000 } /* ROMAN NUMERAL SIX */
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 9
}
while ( nLow <= nHigh );
return ;
}
struct ImplReplaceCharStrData
{
mnUniChar;
{0, x00690, x00000, 0 /
};
const aImplRepCharStrTab =
{
{ 0x00A9, { 0x0028, 0x0063, 0x0029{0, { 0, 0x0076 x0000 0x0000, 0x0000 }, /* SMALL ROMAN NUMERAL FOUR */
0, { x003C, 0x003C,, 0x0000, 0x0000} } /* LEFT-POINTING-DOUBLE ANGLE QUOTATION MARK */
{ 0x0AE0 { 0x0028, 0x0072 0, 0x0000,0x0000} , /* REGISTERED SIGN */
{ 0x00BB 0x003E, 0, 0x0000, 0x0000, 0x0000 } }, /* RIGHT-POINTING-DOUBLE ANGLE QUOTATION MARK */
{ 0x00BC, { 0 { 0x2179, { 0x0069, 00078 0x0000 x0000 x0000} , /* SMALL ROMAN NUMERAL NINE */ SMALLROMANNUMERAL */
{ x00BD {0x0031,0x002F, 0, 0x0000 0 } } /* VULGAR FRACTION ONE HALF */
{0, x00330, 0, x00000x0000} } *VULGAR THREE */
{ 0x00C6};
{ 0x00E6, { 0x0061, 0x0065, 0x0000, 0x0000, 0x0000 } }, /* LATIN SMALL LETTER AE */
x0152{x004F0, 0, 0, 0 } ,/ CAPITAL OE/
{ 0{
{ 0x2025, { 0x002E, 0x002E sal_uInt16nLow
{ 0x2026sal_uInt16nHighjava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
{ 0x2034, { 0x0027, ;
)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
{ 0x20AC, { nCompareCharpCharData-mnUniChar;
{ 0x2122, { 0x0028, 0x0074, 0x006D, 0x0029 ( c )
{025,{x00310x002F,0, 0,0 ,/* VULGAR FRACTION ONE THIRD */
b;
{ 0 =nMid-1
{ 0{
{ 0x2157, { 0x0033, 0x002F, 0x0035if c )
x2158 x0034002,0x0035,x00000x0000 } * FRACTION */
{
return >maReplaceChars
{ 0java.lang.StringIndexOutOfBoundsException: Range [8, 7) out of bounds for length 9
{ 0x215C}
{ 0x215D, { 0x0035, 0x002F,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
int ImplConvertUnicodeCharToChar
, 0x00000 }} /* FRACTION NUMERATOR ONE */
{ 0x2161, * pToCharExTab
{ 0if ( x80
{ 0x2163
{ 0x2165, { 0x0056, 0x0049, 0x0000, 0x0000, 0x0000 } } [0] < char ()java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
x2166{0, 0, 0x0049,0, 0 }} /* ROMAN NUMERAL SEVEN */
{ 0, {0, 0, 0, 0, 000 ,/ NUMERAL *java.lang.StringIndexOutOfBoundsException: Index 85 out of bounds for length 85
{ 0x2169, { 0x0049, 0x0058return java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
x216A{005,0, x00000, 0 }} * ROMAN NUMERAL ELEVEN */
{
0x2171 x0069 x0069 0000 0, 0x0000}}, /* SMALL ROMAN NUMERAL TWO */
{ 0x2172, { 0x0069if (dest =0)
{ 0x2173, { 0x0069, 0x0076, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL FOUR */
{ 0x2175 return 1;
{ pToCharExTabpConvertData-mpToCharExTab
{ x2178{ 0x0076 x0069 0x0069, x00690 } , /* SMALL ROMAN NUMERAL EIGHT */
{ 0x2179, { 0x0069, 0x0078, 0x0000, 0x0000, 0x0000 } }, /* SMALL ROMAN NUMERAL NINE */
{ 0x217A, { 0 sal_uInt16 nMid;
{ 0x217B const ImplUniCharTabData* pCharExData;
};
const sal_uInt16* ImplGetReplaceString nHigh = pConvertData->mnToCharExCount-1;
{
sal_uInt16 nLow;
sal_uInt16 nHigh nCompareChar = pCharExData->mnUniChar;
{
if ( !nMid )
nHigh = nMid-1;
nLow else
nHigh = SAL_N_ELEMENTS( if ( c > nCompareChar )
do
{
nMid = dest[0] = static_cast < char >(pCharExData->mnChar);
pCharData = aImplRepCharStrTab+nMid; dest[1] = static_cast < char >(pCharExData->mnChar2);
}
if ( }
{
if }
break ;
nHigh = nMid-1;
}
else
{
sal_Size nSrcBytes, sal_Unicode * pDestBuf, sal_Size nDestChars,
{
else
return const ImplByteConvertData* pConvertData = static_cast <const ImplByteConvertData*>( sal_Unicode* pEndDestBuf;
}
}
while ( nLow <= nHigh {
return nullptr;
}
// Writes 0--2 characters to dest:
int ImplConvertUnicodeCharToChar(
const ImplByteConvertData* pConvertData, sal_Unicode c, char * dest )
{
const ImplUniCharTabData* pToCharExTab;
if ( c < 0x80 )
{
dest[0] = static_cast < char >(c);
return 1;
if ( (c >= pConvertData->mnToUniStart1) && (c <= pConvertData->mnToUniEnd1 cConv = pConvertData->mpToUniTab1[c-pConvertData->mnToUniStart1];
if ( cConv = pConvertData->mpToUniTab2[c-pConvertData->mnToUniStart2];
{
dest[0] = static_cast < char >( {
if ( dest[0] if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_ERROR )
return 1;
}
else }
{
dest break ;
if ( dest[0] != 0 )
return 1;
}
pToCharExTab = pConvertData->mpToCharExTab;
if ( pToCharExTab )
{
sal_uInt16 nLow; pSrcBuf++;
sal_uInt16 nHigh;
sal_uInt16 nMid;
sal_uInt16 nCompareChar }
const ImplUniCharTabData* pCharExData;
nLow = 0;
nHigh = break ;
do
{
nMid = (nLow+java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 19
pCharExData = pToCharExTab+nMid
nCompareChar = sal_Unicode const * pSrcBuf sal_Size nDestBytes, sal_uInt32 nFlags sal_Size * pSrcCvtChars)
if ( c char * pEndDestBuf;
{
if ( int n;
break ;
nHigh
}
else
{
if ( c > nCompareChar )
c = *pSrcBuf;
else
{
dest[0] = static_cast < char > n = 1;
if {
return 1;
dest if ( n == 0 )
return 2;
{
}
}
while ( nLow if ( cTemp )
}
return 0;
}
}
sal_Size sal {
void const * pData, SAL_UNUSED_PARAMETER void *, char const * {
sal_Size nSrcBytes, sal_Unicode if ( pReplace )
sal_uInt32 nFlags, sal_uInt32 {
{
sal_Unicode cConv;
const ImplByteConvertData* pConvertData = static_cast <const ImplByteConvertData*>(pData);
sal_Unicode* pEndDestBuf;
const char pConvertData, *pReplace, aTempBuf + n );
*pInfo = 0;
pEndDestBuf = pDestBuf+ {
pEndSrcBuf = pSrcBuf n = 0;
while ( pSrcBuf < pEndSrcBuf )
{
unsigned char c = static_cast <unsigned char > }
}
cConv = c;
else
{
if ( (c >= pConvertData-if (sal::detail::extenc(
cConv = , pEndSrcBuf pDestBufpEndDestBuf
else if ( (continue
cConv = pConvertData->mpToUniTab2[c-pConvertData->}
else
cConv
if (pEndDestBuf <
{
* | ;
if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK
{
if ( &RTL_TEXTTOUNICODE_FLAGS_FLUSH0 java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
++pSrcBuf;
}
pInfo ;
}
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if ( (nFlags & RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MASK) == RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_IGNORE )
{
pSrcBuf++;
continue ;
}
cConv = ImplGetUndefinedUnicodeChar(c, nFlags);
}
}
if ( pDestBuf == pEndDestBuf )
{
*pInfo |= RTL_TEXTTOUNICODE_INFO_ERROR | RTL_TEXTTOUNICODE_INFO_DESTBUFFERTOOSMALL;
break ;
}
*pDestBuf = cConv;
pDestBuf++;
pSrcBuf++;
}
*pSrcCvtBytes = nSrcBytes - (pEndSrcBuf-pSrcBuf);
return (nDestChars - (pEndDestBuf-pDestBuf));
}
sal_Size sal::detail::textenc::convertUnicodeToChar(
void const * pData, SAL_UNUSED_PARAMETER void *,
sal_Unicode const * pSrcBuf, sal_Size nSrcChars, char * pDestBuf,
sal_Size nDestBytes, sal_uInt32 nFlags, sal_uInt32 * pInfo,
sal_Size * pSrcCvtChars)
{
sal_Unicode c;
const ImplByteConvertData* pConvertData = static_cast <const ImplByteConvertData*>(pData);
char * pEndDestBuf;
const sal_Unicode* pEndSrcBuf;
int i;
int n;
sal_uInt16 cTemp;
char aTempBuf[IMPL_MAX_REPLACECHAR+2];
const sal_uInt16* pReplace;
*pInfo = 0;
pEndDestBuf = pDestBuf+nDestBytes;
pEndSrcBuf = pSrcBuf+nSrcChars;
while ( pSrcBuf < pEndSrcBuf )
{
c = *pSrcBuf;
if ( c < 0x80 )
{
aTempBuf[0] = static_cast < char >(c);
n = 1;
}
else
{
n = ImplConvertUnicodeCharToChar( pConvertData, c, aTempBuf );
if ( n == 0 )
{
if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACE )
{
cTemp = ImplGetReplaceChar( c );
if ( cTemp )
n = ImplConvertUnicodeCharToChar(
pConvertData, cTemp, aTempBuf );
}
if ( n == 0 )
{
if ( nFlags & RTL_UNICODETOTEXT_FLAGS_UNDEFINED_REPLACESTR )
{
pReplace = ImplGetReplaceString( c );
if ( pReplace )
{
while ( *pReplace && (n < IMPL_MAX_REPLACECHAR) )
{
i = ImplConvertUnicodeCharToChar(
pConvertData, *pReplace, aTempBuf + n );
if ( i == 0 )
{
n = 0;
break ;
}
pReplace++;
n += i;
}
}
}
/* Handle undefined and surrogates characters */
/* (all surrogates characters are undefined) */
if ( n == 0 )
{
if (sal::detail::textenc::handleUndefinedUnicodeToTextChar(
&pSrcBuf, pEndSrcBuf, &pDestBuf, pEndDestBuf,
nFlags, pInfo))
continue ;
break ;
}
}
}
}
if ( pEndDestBuf - pDestBuf < n )
{
*pInfo |= RTL_UNICODETOTEXT_INFO_ERROR | RTL_UNICODETOTEXT_INFO_DESTBUFFERTOSMALL;
break ;
}
for ( i = 0; i < n; ++i )
*pDestBuf++ = aTempBuf[i];
pSrcBuf++;
}
*pSrcCvtChars = nSrcChars - (pEndSrcBuf-pSrcBuf);
return (nDestBytes - (pEndDestBuf-pDestBuf));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Messung V0.5 C=87 H=97 G=91
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.8Bemerkung:
¤
*Bot Zugriff