https://bugs.documentfoundation.org/show_bug.cgi?id=172646

            Bug ID: 172646
           Summary: Regression: SUMIF wildcard matching fails when *
                    precedes some supplementary Unicode characters
           Product: LibreOffice
           Version: 26.2.4.2 release
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Calc
          Assignee: [email protected]
          Reporter: [email protected]

Description:
This appears to be a regression. The `SUMIF` formulas below produce the
expected results in LibreOffice 7.6.7.2 but fail in LibreOffice 26.2.4.2
(Flatpak). The problem occurs when wildcard criteria (`*`) are used with
certain supplementary-plane Unicode characters (e.g. 🌴, 👑 and 💶). In contrast,
BMP characters such as Ⓐ and ℗ match correctly, as does ☝️ (U+261D followed by
U+FE0F, Variation Selector-16).

Steps to Reproduce:
Either see various examples in the attached ods file
or use this very simple test that covers some of the cases using only the 🌴
emoji as the test character.

1. Copy paste the below into the start of an empty sheet (tab separates string
and value to the right):
🌴abc    1
abc🌴    10
abc     100

2. Then use these 3 formulas:
=SUMIF(A1:A3;"🌴*";B1:B3)
=SUMIF(A1:A3;"*🌴";B1:B3)
=SUMIF(A1:A3;"*🌴*";B1:B3)

3. In LibreOffice calc 7.6.7.2 the formulas return:
1
10
11

4. In LibreOffice Calc 26.2.4.2 the formulas return:
1
0
1

Expected behaviour:
=SUMIF(A1:A3;"🌴*";B1:B3)   → 1
=SUMIF(A1:A3;"*🌴";B1:B3)   → 10
=SUMIF(A1:A3;"*🌴*";B1:B3)  → 11

- `🌴*` matches `🌴abc`
- `*🌴` matches `abc🌴`
- `*🌴*` matches both `🌴abc` and `abc🌴`


Actual Results:
`🌴*` works as expected, but `*🌴` and `*🌴*` fail to match strings where 🌴
appears after the wildcard.
The same behaviour is reproducible with several supplementary-plane emojis
including 🌴, 👑 and 💶. Please see the attached examples.


Expected Results:
=SUMIF(A1:A3;"🌴*";B1:B3)   → 1
=SUMIF(A1:A3;"*🌴";B1:B3)   → 10
=SUMIF(A1:A3;"*🌴*";B1:B3)  → 11

- `🌴*` matches `🌴abc`
- `*🌴` matches `abc🌴`
- `*🌴*` matches both `🌴abc` and `abc🌴`



Reproducible: Always


User Profile Reset: Yes

Additional Info:
Works in:
LibreOffice 7.6.7.2

Fails in:
LibreOffice 26.2.4.2 (Flatpak).

Additional observations:
BMP characters such as Ⓐ and ℗ match correctly.
Emoji such as 🌴, 👑 and 💶 do not match correctly after a leading wildcard.
The emoji ☝️ (U+261D U+FE0F) also matches correctly despite consisting of
multiple code points.

Full Help → About LibreOffice information is included in the attached
spreadsheet ("Build info and version" and "Screenshots 📸" sheets).

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to