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

            Bug ID: 157999
           Summary: EDITING Unwanted case change when adjusting duplicate
                    entry in column
           Product: LibreOffice
           Version: 4.2.0.4 release
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Calc
          Assignee: [email protected]
          Reporter: [email protected]
            Blocks: 103341

Created attachment 190529
  --> https://bugs.documentfoundation.org/attachment.cgi?id=190529&action=edit
Sample ODT

- Open the attached spreadsheet,
- In cell A1, which has the text "This Test" (just like A10), replace the 2nd
"T" with "t" and press Enter.

=> A1 should be "This test" but becomes "This Test".

The behavior depends on another cell in the same column having the same
content.

This could be observed in LO 24.2.0.0.alpha0+
(5e726afaf08c8cc59124d9551bb083220a38821e) / Windows.

Interestingly, not before the following commit... or rather, not in the same
way:
https://cgit.freedesktop.org/libreoffice/core/commit/?id=7a2616501bba1225df3f6bc0225c3d5a7a692002

author          Mike Kaganski <[email protected]>     2021-11-29
15:32:39 +0200
committer       Mike Kaganski <[email protected]>     2021-11-29
21:31:21 +0100

"tdf#144308: don't cache DoAutoComplete/AutoInput in ScInputHandler"

However, the bug still occurs when repeating the 2nd step, so this change is a
red herring. It seems Calc behaved with with this adjusted reproducer before
4.2.0.4, it might be worth checking when that started.

The bug occurs, because the following is triggered in
ScInputHandler::EnterHandler(...):
// Perform case-matching only when the typed text is partial.
if (pColumnData && aAutoSearch.getLength() < aString.getLength())
    aString = getExactMatch(*pColumnData, aString);
https://opengrok.libreoffice.org/xref/core/sc/source/ui/app/inputhdl.cxx?r=fee44aa4#3316

Limiting this to when 'aAutoSearch' is not empty would help in this case (it is
empty with these steps), however there's a different way to trigger the bug:
- Type "T" in an empty cell in column A, which gives you the suggestion "T" +
"his Test",
- Click after 2nd "T", press Backspace, then "t" and press Enter.

Here 'aAutoSearch' has "T" in it, so the unwanted replacement would happen
anyway.
I think after accepting or discarding the suggestion, 'aAutoSearch' should be
cleared, while it only seems to be updated as you type. see:
https://opengrok.libreoffice.org/xref/core/sc/source/ui/app/inputhdl.cxx?r=fee44aa4#3970

An old commit touching autoinput, resulting in the code snippet above:
https://cgit.freedesktop.org/libreoffice/core/commit/?id=d8bb8c4fb850b9de762567ed7d337972467470d6
author          Kohei Yoshida <[email protected]>     2010-09-16 10:22:36
+0200
committer       Fridrich Štrba <[email protected]>      2010-09-16
10:22:36 +0200

"calc-autoinput-case-insensitive-matching.diff: no case matching on autoinput"
for https://bz.apache.org/ooo/show_bug.cgi?id=101046


Referenced Bugs:

https://bugs.documentfoundation.org/show_bug.cgi?id=103341
[Bug 103341] [META] AutoCorrect and Word Completion bugs and enhancements
-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to