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;
76 return (TAC_Composible[inputCheckMode][composible_class]);
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));
122 (Text[nStartPos]==0x0E4C &&
CT_ABV1(t2)) )
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();
static constexpr sal_uInt16 getCharType(sal_Unicode x)
Constant values shared between i18npool and, for example, the number formatter.
bool const TAC_Composible[3][5]
static bool check(sal_Unicode ch1, sal_Unicode ch2, sal_Int16 inputCheckMode)
char const TAC_celltype_inputcheck[17][17]