Following tdf#173579 by removing broken dynamic loading of collators,
I focused on Kurdish Latn collation.
Root cause and fix provided by GPT-5.6 Luna
Cause:
when "kmr-Latn-TR", LO uses Language "qlt", Country "TR" (Turkey), Variant "kmr-Latn-TR"
but "kmr-Latn-TR" wasn't used in LOCAL_RULE_LANGS (a variable generated in i18npool/CustomTarget_collator.mk)
and used in i18npool/source/collator/collator_unicode.cxx, method Collator_Unicode::loadCollatorAlgorithm
so "func" and "funclen" weren't initialized with appropriate collator functions.
Fix:
rename file and functions containing "ku" by using "kmr_Latn"
(I suppose the right move since it mimics Eike Rathke's commit 45d4b9b5e3
"renamed ku* to kmr-Latn*, fdo#63460")
Add a specific use case bKmrLatn to load "kmr_Latn" collator functions
to deal with "qlt" language (yes it's a bit kludgy...)
We must remind that "kmr_Latn" can be used for "kmr_Latn_TR" but also with "kmr_Latn_SY"
that's why I avoided using "kmr_Latn_TR"
Also, to avoid the bKmrLatn specific case,
I thought about changing "LangID" tag of i18npool/source/localedata/data/kmr_Latn_TR.xml
from "qlt" into "kmr-Latn" but I'm not sure of the impact.
Change-Id: Ifc608da19b4bd2d05667121e3c6f2455f5d45ca9
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/210977
Tested-by: Jenkins
Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
C/C++ Configuration Created by configure Script
These are configuration files for various features as detected by configure.
Include only those files you need (in order to reduce rebuilds when a setting changes).
Settings here are only C/C++ #define directives, so they apply only to C/C++ source,
not to Makefiles.
Adding a New Setting:
- do
AC_DEFINE(HAVE_FOO)inconfigure.acwhen a setting should be set - choose the proper
config_host/config_XXX.hfile to use- if it is a global setting (such as availability of a compiler feature),
use
config_host/config_global.h - otherwise check if there is a matching
config_host/config_XXX.hfile - if none matches, add a new one:
- add
config_host/config_XXX.h.inhere, with just#ifndefinclude guard - add
AC_CONFIG_HEADERS([config_host/config_XXX.h])next to the others inconfigure.ac
- add
- if it is a global setting (such as availability of a compiler feature),
use
- add
#define HAVE_FOO 0to theconfig_host/config_XXX.h, possibly with a comment (do not use#undef HAVE_FOO, unless the setting has more values than on/off) - add
#include <config_XXX.h>before any #ifHAVE_FOOin a source file - make sure you use
#if HAVE_FOOfor on/off settings, do not use#ifdef