Hi Michael, On Monday, 2015-03-23 15:49:35 +0100, Michael Stahl wrote:
static const sal_Int32 COMPLEX_TRANS_MASK = COMPLEX_TRANS_MASK_TMP | TransliterationModules_IGNORE_KANA | TransliterationModules_FULLWIDTH_HALFWIDTH; the FULLWIDTH_HALFWIDTH value is 4 and the TransliterationModules enum is very odd in that it is basically split into 2 ranges and values < 0xFF are not to be used as bitflags, whereas values > 0xFF are always defined as single bits. using FULLWIDTH_HALFWIDTH in the mask looks like it would affect the value NumToTextFormalLower_ko = 12 as well which is probably not intentional?
Sigh.. probably not.. looks like the non-bit values need to be explicitly checked for at all places where (... & COMPLEX_TRANS_MASK) is done instead of simply using them in the mask. Same for SIMPLE_TRANS_MASK and SIMPLE_TRANS_MASK_REPATTERN. TransliterationModules_UPPERCASE_LOWERCASE | TransliterationModules_LOWERCASE_UPPERCASE in SIMPLE_TRANS_MASK_REPATTERN equals 3 and so matches quite some values ... comparing such masked value with a SIMPLE_TRANS_MASK-masked value also doesn't look right. Eike -- LibreOffice Calc developer. Number formatter stricken i18n transpositionizer. GPG key "ID" 0x65632D3A - 2265 D7F3 A7B0 95CC 3918 630B 6A6C D5B7 6563 2D3A Better use 64-bit 0x6A6CD5B765632D3A here is why: https://evil32.com/ Care about Free Software, support the FSFE https://fsfe.org/support/?erack
Attachment:
pgpNUALy5jbT3.pgp
Description: PGP signature