sw/source/core/text/porlay.cxx |   28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

New commits:
commit f99879edf4a4191daa98217f125e3d46d74a3031
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu Mar 31 11:05:53 2022 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Thu Mar 31 15:27:19 2022 +0200

    add some documentation wrt kashidas
    
    that seems to match what we are currently doing in writer
    
    Change-Id: Iecc371deb88dc417fd86d5a6497dbf1dee53f72d
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132360
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx
index b44a34f2ca14..bca9c41daea7 100644
--- a/sw/source/core/text/porlay.cxx
+++ b/sw/source/core/text/porlay.cxx
@@ -66,6 +66,34 @@ using namespace i18n::ScriptType;
 #include <i18nutil/scripttypedetector.hxx>
 #include <i18nutil/unicode.hxx>
 
+/*
+   https://www.khtt.net/en/page/1821/the-big-kashida-secret
+
+   the rules of priorities that govern the addition of kashidas in Arabic text
+   made ... for ... Explorer 5.5 browser.
+
+   The kashida justification is based on a connection priority scheme that
+   decides where kashidas are put automatically.
+
+   This is how the software decides on kashida-inserting priorities:
+   1. First it looks for characters with the highest priority in each word,
+   which means kashida-extensions will only been used in one position in each
+   word. Not more.
+   2. The kashida will be connected to the character with the highest priority.
+   3. If kashida connection opportunities are found with an equal level of
+   priority in one word, the kashida will be placed towards the end of the
+   word.
+
+   The priority list of characters and the positioning is as follows:
+   1. after a kashida that is manually placed in the text by the user,
+   2. after a Seen or Sad (initial and medial form),
+   3. before the final form of Taa Marbutah, Haa, Dal,
+   4. before the final form of Alef, Tah Lam, Kaf and Gaf,
+   5. before the preceding medial Baa of Ra, Ya and Alef Maqsurah,
+   6. before the final form of Waw, Ain, Qaf and Fa,
+   7. before the final form of other characters that can be connected.
+*/
+
 #define IS_JOINING_GROUP(c, g) ( u_getIntPropertyValue( (c), 
UCHAR_JOINING_GROUP ) == U_JG_##g )
 #define isAinChar(c)        IS_JOINING_GROUP((c), AIN)
 #define isAlefChar(c)       IS_JOINING_GROUP((c), ALEF)

Reply via email to