https://bz.apache.org/ooo/show_bug.cgi?id=126680
Arrigo Marchiori <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- OS|Windows 7 |All Summary|Unable to save a document |Unable to save a document |in ODS with builds using |in ODS with builds using |non-Latin alphabets |non-Latin alphabets, due to | |changes of transliteration | |rules at runtime --- Comment #43 from Arrigo Marchiori <[email protected]> --- Concentrating on the cyrillic build: method Transliteration_caseignore::compare() is responsible for comparing strings. The cyrillic word starts with 'б', that is the Unicode code point U+0431, "Cyrillic small letter Be". The first letter of the compared ASCII string is 'S'. When the file is _loaded_ this 'S' is represented with code point U+0073, "Latin small letter S". When the file is _saved_ the same 'S' is represented with code point U+ff53, "Fullwidth Latin small letter S". These two codepoints are respectively ``smaller'' and ``bigger'' than U+0431 and this gives the problem: the database ranges, in memory, are not sorted correctly any more. If we close and reopen the same file, the second time 'S' is again represented as U+ff53 _at loading time_. This allows the save to succeed. When I wrote ``represented'' above, I meant the value returned by: casefolding::getNextChar(). We must understand why the behavior of this method changes at some point during AOO execution. -- You are receiving this mail because: You are the assignee for the issue.
