From 2ed69ed21457236f468e3e0d195abb6065554184 Mon Sep 17 00:00:00 2001
From: Michele Calgaro <michele.calgaro@yahoo.it>
Date: Thu, 14 May 2026 20:27:16 +0900
Subject: Fix assert violation in TQRichText with improper diacritics.

This resolves issue #287 and replace PR #289.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
---
 src/kernel/tqtextengine.cpp   | 4 ++--
 src/tools/tqunicodetables.cpp | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/kernel/tqtextengine.cpp b/src/kernel/tqtextengine.cpp
index 1cda53f96..076a523ea 100644
--- a/src/kernel/tqtextengine.cpp
+++ b/src/kernel/tqtextengine.cpp
@@ -193,7 +193,7 @@ static void appendItems(TQTextEngine *engine, int &start, int &stop, BidiControl
 	    unsigned short uc = text[i].unicode();
 	    TQFont::Script s = (TQFont::Script)scriptForChar( uc );
 	    if (s == TQFont::UnknownScript || s == TQFont::CombiningMarks)
-		s = script;
+		s = script != TQFont::NoScript ? script : TQFont::Unicode;
 
 	    if (s != script) {
 		item.analysis.script = s;
@@ -209,7 +209,7 @@ static void appendItems(TQTextEngine *engine, int &start, int &stop, BidiControl
 	    unsigned short uc = text[i].unicode();
 	    TQFont::Script s = (TQFont::Script)scriptForChar( uc );
 	    if (s == TQFont::UnknownScript || s == TQFont::CombiningMarks)
-		s = script;
+		s = script != TQFont::NoScript ? script : TQFont::Unicode;
 
 	    TQChar::Category category = ::category( uc );
 	    if ( uc == 0xfffcU || uc == 0x2028U ) {
diff --git a/src/tools/tqunicodetables.cpp b/src/tools/tqunicodetables.cpp
index ee3ed918b..9a34baf1f 100644
--- a/src/tools/tqunicodetables.cpp
+++ b/src/tools/tqunicodetables.cpp
@@ -13156,7 +13156,7 @@ const unsigned char TQUnicodeTables::otherScripts [128] = {
 #define SCRIPTS_19 52
     0x4f, Limbu, 0x7f, TaiLe, 0xdf, Unicode, 0xff, Khmer,
 #define SCRIPTS_20 60
-    0x0a, Unicode, 0x0d, UnknownScript, 0x6f, Unicode, 0x9f, NumberForms,
+    0x0b, Unicode, 0x0d, CombiningMarks, 0x6f, Unicode, 0x9f, NumberForms,
     0xab, CurrencySymbols, 0xac, Latin,
     0xcf, CurrencySymbols, 0xff, CombiningMarks,		// row 0x20, index 50
 #define SCRIPTS_21 76
-- 
cgit v1.2.3

