https://bugs.documentfoundation.org/show_bug.cgi?id=168698
Bug ID: 168698
Summary: Syriac justification rule does not select the right
place to insert kashida character
Product: LibreOffice
Version: 25.8.1.1 release
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: medium
Component: Writer
Assignee: [email protected]
Reporter: [email protected]
Description:
Depending on how vowel markings or dots are placed on Syriac consonants, the
rule for counting where to insert the kashida(0640) character seems to be
counting by any kind of character instead of by Syriac consonants. The rule is
that we calculate the mid-point of a word, and search from back to the middle,
and then from front to middle to insert the character based on connecting
rules. As it is now, the middle is just calculated by dividing by two of all
character types, instead of counting the middle of Syriac consonants.
Another issue is that it should count from back to middle inclusive before it
goes to front to middle exclusive. In a situation of an even-numbered set of
consonants, the middle includes what would be between the two middle
consonants.
If the above is not possible, or as a temporary fix, it would be sufficient in
the short term to simply search from back to front, and not calculate the
midpoint.
Steps to Reproduce:
1. Paste in or type in a Syriac text.
2. Justify the text.
3. Set Right-to-Left (need complex layouts enabled).
4. Put line-breaks to test the justification.
5. Add and remove dot or vowel markings to see the kashida shift to different
positions
Actual Results:
The kashida moves to different parts of the word as dots and vowel markings are
changed.
Expected Results:
The middle of the word should be calculated by only adding or removing Syriac
consonants, and not by adding other Syriac markings such as dots or vowels.
Reproducible: Always
User Profile Reset: No
Additional Info:
This is a follow up to Bug 140767.
I'm no C++ programmer but I believe the issue may be at:
i18util/source/utility/kashida.cxx, line 351.
The syriac consonants are: 0710, 0712 to 072F, and 074D-F
The vowel and dot markings are: 0730-074A, and 0711
Version: 25.8.1.1 (X86_64) / LibreOffice Community
Build ID: 580(Build:1)
CPU threads: 16; OS: Linux 6.12; UI render: default; VCL: gtk3
Locale: en-US (en_US.UTF-8); UI: en-US
25.8.1-3
Calc: threaded
Testing text:
These are the same words repeated, with and without different sets of vowels
and markings, they should insert kashida the same way regardless of the
markings. Use shift+enter to make new line to force justification lines to
show.
ܠܠܝܐ
ܠܺܠܝܐ
ܠܺܠܝܳܐ
ܟܬܒܐ
ܟܬܳܒܳܐ
ܟܬ̥ܳܒܳܐ
ܟܬܳܒܐ
ܚܒܝܒܐ
ܚܰܒܺܝܒܳܐ
ܚܰܒܺ̊ܝܒ̥ܳܐ
ܚܒܝܒܳܐ
ܐܒܘܢ
ܐܰܒ̥ܽܘܢ
ܡܶܢ
ܡܰܢ
ܡܢ
ܡܐܐ
ܡܳܐܐ
--
You are receiving this mail because:
You are the assignee for the bug.