39{
'X',
'A',
'A',
'A',
'A',
'A',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
40 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
41 {
'X',
'A',
'A',
'A',
'A',
'S',
'A',
'C',
'C',
'C',
'C',
'C',
'C',
'C',
'C',
'C',
'C' },
42 {
'X',
'S',
'A',
'S',
'S',
'S',
'S',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
43 {
'X',
'A',
'A',
'A',
'A',
'S',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
44 {
'X',
'A',
'A',
'A',
'A',
'S',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
45 {
'X',
'A',
'A',
'A',
'S',
'A',
'S',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
46 {
'X',
'A',
'A',
'A',
'A',
'S',
'A',
'R',
'R',
'R',
'C',
'C',
'R',
'R',
'R',
'R',
'R' },
47 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'C',
'R',
'R',
'R',
'R',
'R',
'R' },
48 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
49 {
'X',
'A',
'A',
'A',
'A',
'A',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
50 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
51 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
52 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R',
'R' },
53 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'C',
'C',
'R',
'R',
'R',
'R',
'R' },
54 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'C',
'R',
'R',
'R',
'R',
'R',
'R' },
55 {
'X',
'A',
'A',
'A',
'S',
'S',
'A',
'R',
'R',
'R',
'C',
'R',
'C',
'R',
'R',
'R',
'R' }
60 {
true,
true,
true,
true,
true},
61 {
true,
true,
true,
false,
true},
62 {
true,
true,
false,
false,
true}
67 sal_Int16 composible_class;
69 case 'A': composible_class = 0;
break;
70 case 'C': composible_class = 1;
break;
71 case 'S': composible_class = 2;
break;
72 case 'R': composible_class = 3;
break;
73 case 'X': composible_class = 4;
break;
74 default: composible_class = 0;
83 return check(
Text[nStartPos], inputChar, inputCheckMode);
90 sal_Int16 inputCheckMode)
110#define CT_ABV(t) ( (t>=CT_AV1 && t<=CT_AV3) || t==CT_BV1 || t==CT_BV2)
111#define CT_ABV1(t) (t==CT_AV1 || t==CT_BV1)
113 if (
check(
Text[nStartPos], inputChar, inputCheckMode))
114 Text =
Text.replaceAt(++nStartPos, 0, rtl::OUStringChar(inputChar));
119 Text =
Text.replaceAt(nStartPos, 1, rtl::OUStringChar(inputChar));
123 Text =
Text.replaceAt(nStartPos++, 0, rtl::OUStringChar(inputChar));
125 nStartPos=
Text.getLength();
129 Text =
Text.replaceAt(nStartPos, 1, rtl::OUStringChar(inputChar));
133 Text =
Text.replaceAt(nStartPos-1, 1, rtl::OUStringChar(inputChar));
135 nStartPos=
Text.getLength();
137 nStartPos=
Text.getLength();
Constant values shared between i18npool and, for example, the number formatter.
char const TAC_celltype_inputcheck[17][17]
static bool check(sal_Unicode ch1, sal_Unicode ch2, sal_Int16 inputCheckMode)
static constexpr sal_uInt16 getCharType(sal_Unicode x)
bool const TAC_Composible[3][5]