qt5base-lts/util
Edward Welbourne 81cf23c7a7 Take CLDR's distinguished attributes into account
When doing XPATH searches, child nodes that have distinguished
attributes that were not asked for should be skipped. This is part of
the LDML spec and matters when resolving locale inheritance. Scan the
LDML DTD (previously only scanned for the CLDR version) to find which
attributes of which tags are ignorable - all others are distinguished
- and take the result into account when performing XPATH searches.

The XPath we were using for currency formats wasn't excluding
currencyFormatLength elements with type="short" and patterns specific
to thousands (and larger multiples); this is fixed by taking
distinguished attributes into account. However, the XPATH also wasn't
specifying the always distinguished attribute type="standard" that
was, in practice, used for nearly all locales that weren't (wrongly)
using short-forms for thousands; so type="standard" is now made
explicit, so as to minimize the diff.

This leaves only twenty-one locales with a negative currency formats.
A later commit shall switch to using accounting by default (it falls
back via an alias to standard, in any case), thereby restoring the two
mentioned below that were using it by accident, but the present change
gives the minimal diff here.

Thousands-specific formats replaced with sensible ones:
* zh_Hant_{HK,MO} (Traditional Mandarin, Hong Kong and Macau)
* eo_001 (Esperanto)
* fr_CA (Canadian French)
* ha_* (Hausa, when not written in Arabic)
* es_{GT,MX,US} (Spanish - Guatemala, Mexico, USA)
* sw_KE (Swahili, Kenya)
* yi_001 (Yiddish)
* mfe_MU (Morisyen, Mauritius)
* lag_TZ (Langi, Tanzania)
* mgh_MZ (Makhuwa Meetto, Mozambique)
* wae_CH (Walser, Switzerland)
* kkj_CM (Kako, Cameroon)
* lkt_US (Lakota, USA)
* pa_Arab_PK (Punjabi, in Arabic script, as used in Pakistan; uses
  arabext number system, whose currency falls back to latn's, for
  which pa_Arab over-rides the thousands-format).

Format changed from an over-ridden type="accounting" to standard (so
these lost a negative-specific form) in:
* en_SI (English, Slovenia)
* es_DO (Spanish, Dominican Republic; same)

For some locales we were picking up over-rides of narrow or short list
formats, or formats for or-lists or unit-lists rather than and-lists,
in place of the standard list format, that these locales don't
over-ride, provided by a parent locale. This changed list formats for:
* en_CA, en_IN (dropped "Oxford" comma before "and")
* qu_* (Quechua; dropped "utaq", presumably meaning "and")
* ur_IN (Urdu, India; was using unit-list formats)

[ChangeLog][QtCore][QLocale] Data used for currency formats in several
locales and list patterns in some locales have changed due to now
parsing the CLDR data more faithfully.

Fixes: QTBUG-81344
Change-Id: I6b95c6c37db92df167153767c1b103becfb0ac98
Reviewed-by: Cristian Maureira-Fredes <cristian.maureira-fredes@qt.io>
2020-04-02 19:43:28 +01:00
..
accessibilityinspector Use Qt::SplitBehavior in preference to QString::SplitBehavior 2020-02-28 15:37:11 +01:00
aglfn Updated license headers 2016-01-21 18:55:18 +00:00
corelib/qurl-generateTLDs Compile-fixes in the generator for qurltld_p.h 2019-10-25 11:43:04 +02:00
edid Minor grammar fixup 2018-08-03 18:11:24 +00:00
glgen glgen: Fix compile error 2020-01-31 14:02:53 +01:00
gradientgen WebGradients: redo implementation 2019-12-14 11:31:46 +01:00
harfbuzz Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
includemocs QtCore: include mocs 2017-05-05 03:03:30 +00:00
integrity Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
lexgen Remove usages of deprecated APIs from QtAlgorithms 2019-06-29 21:58:36 +02:00
locale_database Take CLDR's distinguished attributes into account 2020-04-02 19:43:28 +01:00
plugintest Updated license headers 2016-01-21 18:55:18 +00:00
qfloat16-tables Merge remote-tracking branch 'origin/5.13' into 5.14 2019-11-06 11:41:19 +01:00
unicode Update UCD to Revision 26 2020-03-14 11:26:59 +01:00
x86simdgen SIMD: Change the way we declare constants for x86 2018-07-09 00:18:30 +00:00
xkbdatagen Updated license headers 2016-01-21 18:55:18 +00:00