Update to gettext 0.26

gettext: Update to 0.26 + regenerate pregened files

A lot of silly pregenerated files in this one, and very slow too :(
This commit is contained in:
Samuel Tyler 2025-12-29 21:50:45 +11:00
parent cf61139126
commit 5dcb00878f
No known key found for this signature in database
GPG key ID: EB5091A5C77E8DC4
8 changed files with 609 additions and 41 deletions

View file

@ -0,0 +1,398 @@
SPDX-FileCopyrightText: 2019 Bruno Haible <bruno@clisp.org>
SPDX-License-Identifier: GPL-3.0-or-later
This is the set of differences between the generated file and hand
modifications made for the file in gettext.
Applied after the regenerations occur.
--- a/include/libxml/globals.h 2025-12-31 10:27:50.432552177 +1100
+++ b/include/libxml/globals.h 2019-12-23 22:21:12.000000000 +1100
@@ -62,6 +91,8 @@
XMLPUBFUN xmlOutputBufferCreateFilenameFunc
XMLCALL xmlOutputBufferCreateFilenameDefault (xmlOutputBufferCreateFilenameFunc func);
+#if !defined IN_LIBTEXTSTYLE
+
/*
* Externally global symbols which need to be protected for backwards
* compatibility support.
@@ -101,6 +132,8 @@
#undef xmlParserInputBufferCreateFilenameValue
#undef xmlOutputBufferCreateFilenameValue
+#endif
+
/**
* xmlRegisterNodeFunc:
* @node: the current node
--- a/globals.c 2025-12-31 10:42:52.577486689 +1100
+++ b/globals.c 2019-12-23 22:21:12.000000000 +1100
@@ -70,6 +99,8 @@
* *
************************************************************************/
+#if !defined IN_LIBTEXTSTYLE
+
/*
* Memory allocation routines
*/
@@ -79,6 +110,8 @@
#undef xmlMemStrdup
#undef xmlRealloc
+#endif
+
#if defined(DEBUG_MEMORY_LOCATION) || defined(DEBUG_MEMORY)
xmlFreeFunc xmlFree = (xmlFreeFunc) xmlMemFree;
xmlMallocFunc xmlMalloc = (xmlMallocFunc) xmlMemMalloc;
@@ -150,6 +183,8 @@
#include <libxml/globals.h>
#include <libxml/SAX.h>
+#if !defined IN_LIBTEXTSTYLE
+
#undef docbDefaultSAXHandler
#undef htmlDefaultSAXHandler
#undef oldXMLWDcompatibility
@@ -179,6 +214,9 @@
#undef xmlParserInputBufferCreateFilenameValue
#undef xmlOutputBufferCreateFilenameValue
+
+#endif
+
/**
* xmlParserVersion:
*
@@ -702,7 +740,9 @@
}
#ifdef LIBXML_DOCB_ENABLED
+#if !defined IN_LIBTEXTSTYLE
#undef docbDefaultSAXHandler
+#endif
xmlSAXHandlerV1 *
__docbDefaultSAXHandler(void) {
if (IS_MAIN_THREAD)
@@ -713,7 +753,9 @@
#endif
#ifdef LIBXML_HTML_ENABLED
+#if !defined IN_LIBTEXTSTYLE
#undef htmlDefaultSAXHandler
+#endif
xmlSAXHandlerV1 *
__htmlDefaultSAXHandler(void) {
if (IS_MAIN_THREAD)
@@ -723,7 +765,9 @@
}
#endif
+#if !defined IN_LIBTEXTSTYLE
#undef xmlLastError
+#endif
xmlError *
__xmlLastError(void) {
if (IS_MAIN_THREAD)
@@ -738,7 +782,9 @@
* the right place for them :-)
*/
#if defined(LIBXML_THREAD_ALLOC_ENABLED) && defined(LIBXML_THREAD_ENABLED)
+#if !defined IN_LIBTEXTSTYLE
#undef xmlMalloc
+#endif
xmlMallocFunc *
__xmlMalloc(void){
if (IS_MAIN_THREAD)
@@ -747,7 +793,9 @@
return (&xmlGetGlobalState()->xmlMalloc);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlMallocAtomic
+#endif
xmlMallocFunc *
__xmlMallocAtomic(void){
if (IS_MAIN_THREAD)
@@ -756,7 +804,9 @@
return (&xmlGetGlobalState()->xmlMallocAtomic);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlRealloc
+#endif
xmlReallocFunc *
__xmlRealloc(void){
if (IS_MAIN_THREAD)
@@ -765,7 +815,9 @@
return (&xmlGetGlobalState()->xmlRealloc);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlFree
+#endif
xmlFreeFunc *
__xmlFree(void){
if (IS_MAIN_THREAD)
@@ -791,7 +843,9 @@
*/
+#if !defined IN_LIBTEXTSTYLE
#undef oldXMLWDcompatibility
+#endif
int *
__oldXMLWDcompatibility(void) {
if (IS_MAIN_THREAD)
@@ -800,7 +854,9 @@
return (&xmlGetGlobalState()->oldXMLWDcompatibility);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlBufferAllocScheme
+#endif
xmlBufferAllocationScheme *
__xmlBufferAllocScheme(void) {
if (IS_MAIN_THREAD)
@@ -817,7 +873,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDefaultBufferSize
+#endif
int *
__xmlDefaultBufferSize(void) {
if (IS_MAIN_THREAD)
@@ -834,7 +892,10 @@
return ret;
}
+#ifdef LIBXML_SAX1_ENABLED
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDefaultSAXHandler
+#endif
xmlSAXHandlerV1 *
__xmlDefaultSAXHandler(void) {
if (IS_MAIN_THREAD)
@@ -842,8 +903,11 @@
else
return (&xmlGetGlobalState()->xmlDefaultSAXHandler);
}
+#endif /* LIBXML_SAX1_ENABLED */
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDefaultSAXLocator
+#endif
xmlSAXLocator *
__xmlDefaultSAXLocator(void) {
if (IS_MAIN_THREAD)
@@ -852,7 +916,9 @@
return (&xmlGetGlobalState()->xmlDefaultSAXLocator);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDoValidityCheckingDefaultValue
+#endif
int *
__xmlDoValidityCheckingDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -869,7 +935,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlGenericError
+#endif
xmlGenericErrorFunc *
__xmlGenericError(void) {
if (IS_MAIN_THREAD)
@@ -878,7 +946,9 @@
return (&xmlGetGlobalState()->xmlGenericError);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlStructuredError
+#endif
xmlStructuredErrorFunc *
__xmlStructuredError(void) {
if (IS_MAIN_THREAD)
@@ -887,7 +957,9 @@
return (&xmlGetGlobalState()->xmlStructuredError);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlGenericErrorContext
+#endif
void * *
__xmlGenericErrorContext(void) {
if (IS_MAIN_THREAD)
@@ -896,7 +968,9 @@
return (&xmlGetGlobalState()->xmlGenericErrorContext);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlStructuredErrorContext
+#endif
void * *
__xmlStructuredErrorContext(void) {
if (IS_MAIN_THREAD)
@@ -905,7 +979,9 @@
return (&xmlGetGlobalState()->xmlStructuredErrorContext);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlGetWarningsDefaultValue
+#endif
int *
__xmlGetWarningsDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -922,7 +998,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlIndentTreeOutput
+#endif
int *
__xmlIndentTreeOutput(void) {
if (IS_MAIN_THREAD)
@@ -939,7 +1017,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlTreeIndentString
+#endif
const char * *
__xmlTreeIndentString(void) {
if (IS_MAIN_THREAD)
@@ -956,7 +1036,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlKeepBlanksDefaultValue
+#endif
int *
__xmlKeepBlanksDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -973,7 +1055,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlLineNumbersDefaultValue
+#endif
int *
__xmlLineNumbersDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -990,7 +1074,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlLoadExtDtdDefaultValue
+#endif
int *
__xmlLoadExtDtdDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1007,7 +1093,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlParserDebugEntities
+#endif
int *
__xmlParserDebugEntities(void) {
if (IS_MAIN_THREAD)
@@ -1024,7 +1112,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlParserVersion
+#endif
const char * *
__xmlParserVersion(void) {
if (IS_MAIN_THREAD)
@@ -1033,7 +1123,9 @@
return (&xmlGetGlobalState()->xmlParserVersion);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlPedanticParserDefaultValue
+#endif
int *
__xmlPedanticParserDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1050,7 +1142,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlSaveNoEmptyTags
+#endif
int *
__xmlSaveNoEmptyTags(void) {
if (IS_MAIN_THREAD)
@@ -1067,7 +1161,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlSubstituteEntitiesDefaultValue
+#endif
int *
__xmlSubstituteEntitiesDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1084,7 +1180,9 @@
return ret;
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlRegisterNodeDefaultValue
+#endif
xmlRegisterNodeFunc *
__xmlRegisterNodeDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1093,7 +1191,9 @@
return (&xmlGetGlobalState()->xmlRegisterNodeDefaultValue);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlDeregisterNodeDefaultValue
+#endif
xmlDeregisterNodeFunc *
__xmlDeregisterNodeDefaultValue(void) {
if (IS_MAIN_THREAD)
@@ -1102,7 +1202,9 @@
return (&xmlGetGlobalState()->xmlDeregisterNodeDefaultValue);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlParserInputBufferCreateFilenameValue
+#endif
xmlParserInputBufferCreateFilenameFunc *
__xmlParserInputBufferCreateFilenameValue(void) {
if (IS_MAIN_THREAD)
@@ -1111,7 +1213,9 @@
return (&xmlGetGlobalState()->xmlParserInputBufferCreateFilenameValue);
}
+#if !defined IN_LIBTEXTSTYLE
#undef xmlOutputBufferCreateFilenameValue
+#endif
xmlOutputBufferCreateFilenameFunc *
__xmlOutputBufferCreateFilenameValue(void) {
if (IS_MAIN_THREAD)
@@ -1119,3 +1223,6 @@
else
return (&xmlGetGlobalState()->xmlOutputBufferCreateFilenameValue);
}
+
+#define bottom_globals
+#include "elfgcchack.h"

147
steps/gettext-0.26/pass1.sh Executable file
View file

@ -0,0 +1,147 @@
# SPDX-FileCopyrightText: 2021-22 Samuel Tyler <samuel@samuelt.me>
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <andrius@stikonas.eu>
#
# SPDX-License-Identifier: GPL-3.0-or-later
src_prepare() {
default
find . \( -name '*.info*' \
-o -name '*.gmo' \
-o -name '*.mo' \) -delete
find . \( -name '*.html*' -o -name '*.1*' \) \
-not -path "./gettext-runtime/intl-csharp/doc/*" \
-not -path "./gettext-tools/doc/tutorial.html" \
-not -path "./gettext-tools/doc/FAQ.html" \
-delete \
-exec touch {} +
# bison
rm gettext-runtime/intl/plural.{c,h} \
gettext-tools/src/{read-po-gram,cldr-plural}.{c,h}
# Misc files
find . -name "*.class" -delete -exec touch {} +
touch gettext-tools/gnulib-lib/javaversion.class
rm gettext-tools/m4/csharpexec-test.exe
touch gettext-tools/m4/csharpexec-test.exe
rm -r gettext-tools/tests/testdata/repo.tar.gz \
gettext-tools/tests/testdata/dprog.*.d \
gettext-tools/tests/mm-viet.comp.po \
gettext-tools/tests/qttest*.qm \
libtextstyle/{,gnulib-local}/tests/test-term-ostream-xterm-xf86-v32.out
touch libtextstyle/{,gnulib-local}/tests/test-term-ostream-xterm-xf86-v32.out
# gnulib-local/lib/libxml
local libxml2
libxml2=$(realpath ../libxml2-v2.9.9)
mv post-global-regen.patch "$libxml2"
pushd "$libxml2"
for i in include/libxml/globals.h globals.c; do
sed "/Everything starting from the line below/q" $i > $i.top
mv $i.top $i
done
rm include/libxml/xmlunicode.h xmlunicode.c \
include/libxml/chvalid.h chvalid.c
mv ../*-4.0.1.txt .
python2.3 genUnicode.py
python2.3 genChRanges.py
python2.3 build_glob.py
patch -Np1 -i post-global-regen.patch
popd
pushd gnulib-local/lib/libxml
for f in xmlunicode chvalid globals; do
cp "$libxml2/$f.c" "$f.c"
cp "$libxml2/include/libxml/$f.h" "$f.in.h"
done
popd
# Regenerate gnulib files
rm {gettext-runtime,gettext-runtime/intl,gettext-runtime/libasprintf,gettext-tools}/gnulib-lib/uniwidth/width*.h \
{gettext-runtime,gettext-runtime/intl,gettext-runtime/libasprintf,gettext-tools}/gnulib-lib/unictype/ctype*.h \
{gettext-runtime,gettext-runtime/intl,gettext-runtime/libasprintf,gettext-tools}/gnulib-lib/unicase/tolower.h \
gettext-tools/libgettextpo/uniwidth/width*.h \
gettext-tools/libgettextpo/unictype/ctype*.h \
gettext-tools/libgettextpo/unicase/tolower.h \
gettext-tools/gnulib-lib/unicase/{tocasefold,ignorable,cased}.h \
gettext-tools/gnulib-lib/unicase/special-casing-table.* \
gettext-tools/gnulib-lib/unictype/combiningclass.h \
gettext-tools/{gnulib-lib,libgettextpo}/unictype/pr_*.h \
gettext-tools/{gnulib-lib,libgettextpo}/unilbrk/{lbrktables.c,lbrkprop*.h} \
gettext-tools/gnulib-lib/uniname/{uninames.h,gen-uninames.lisp} \
gettext-tools/gnulib-lib/uninorm/{de,}composition-table* \
gettext-tools/gnulib-tests/unicase/test-{uc_tolower,ignorable,cased}.c \
gettext-tools/gnulib-tests/unictype/test-{ctype,pr,sy}_*.c
rm libtextstyle/lib/uniwidth/width*.h \
libtextstyle/lib/unictype/ctype_*.h \
libtextstyle/lib/unicase/tolower.h \
libtextstyle/lib/*-ostream.{c,h} \
libtextstyle/lib/*_ostream.* \
libtextstyle/lib/ostream.{c,h,vt.h,priv.h}
rm -r gettext-tools/gnulib-lib/libxml libtextstyle/lib/libxml
pushd ../gnulib-b5eb878
rm lib/unictype/ctype*.h \
lib/unicase/tolower.h \
lib/uniwidth/width*.h
pushd lib
gcc -Iunictype -o gen-uni-tables gen-uni-tables.c
mv ../../*-16.0.0.txt ../../PropList-3.0.1.txt .
./gen-uni-tables UnicodeData-16.0.0.txt \
PropList-16.0.0.txt \
DerivedCoreProperties-16.0.0.txt \
emoji-data-16.0.0.txt \
ArabicShaping-16.0.0.txt \
Scripts-16.0.0.txt \
Blocks-16.0.0.txt \
PropList-3.0.1.txt \
BidiMirroring-16.0.0.txt \
EastAsianWidth-16.0.0.txt \
LineBreak-16.0.0.txt \
WordBreakProperty-16.0.0.txt \
GraphemeBreakProperty-16.0.0.txt \
CompositionExclusions-16.0.0.txt \
SpecialCasing-16.0.0.txt \
CaseFolding-16.0.0.txt \
16.0.0
popd
popd
# gnulib + autotools
GNULIB_SRCDIR=$(realpath ../gnulib-b5eb878) ./autogen.sh
# archive.dir.tar
local archive temp
archive="$(realpath gettext-tools/misc/archive.dir.tar)"
temp="$(mktemp -d)"
pushd "$temp"
tar -xf "$archive"
sed -i "s/%expect 10/%expect 7/" gettext-0.10.*/intl/plural.y
find . -path "*/intl/plural.c" | while read -r file; do
pushd "$(dirname "$file")"
rm plural.c
bison -o plural.c plural.y
popd
done
tar -cf "$archive" gettext-*
popd
rm -rf "$temp"
}
src_configure() {
./configure --prefix="${PREFIX}" \
--libdir="${LIBDIR}" \
--enable-static \
--disable-shared \
--disable-java
}
src_compile() {
make "${MAKEJOBS}" MAKEINFO=true
}
src_install() {
make MAKEINFO=true DESTDIR="${DESTDIR}" install
}

View file

@ -0,0 +1,36 @@
SPDX-FileCopyrightText: 2025 Samuel Tyler <samuel@samuelt.me>
SPDX-License-Identifier: MIT
For whatever reason, the regeneration script for globals.{c,h} does not match
what it should be. This is probably because the files were hand edited
afterward. We do the proper fix and update the generation script.
--- libxml2-v2.9.9/build_glob.py 2019-01-04 05:14:17.000000000 +1100
+++ libxml2-v2.9.9/build_glob.py 2025-12-31 10:30:55.384538752 +1100
@@ -68,7 +68,7 @@
fields = string.split(line, ",")
# Update the header file
writeline(global_functions_hdr)
- global_functions_hdr.write("extern "+fields[0]+" *")
+ global_functions_hdr.write("XMLPUBFUN "+fields[0]+" * XMLCALL ")
if fields[2]:
global_functions_hdr.write("(*")
global_functions_hdr.write("__"+fields[1]+"(void)")
@@ -80,13 +80,13 @@
writeline(global_functions_hdr,"(*(__"+fields[1]+"()))")
writeline(global_functions_hdr,"#else")
if fields[2]:
- writeline(global_functions_hdr,"LIBXML_DLL_IMPORT extern "+fields[0]+" "+fields[1]+fields[2]+";")
+ writeline(global_functions_hdr,"XMLPUBVAR "+fields[0]+" "+fields[1]+fields[2]+";")
else:
- writeline(global_functions_hdr,"LIBXML_DLL_IMPORT extern "+fields[0]+" "+fields[1]+";")
+ writeline(global_functions_hdr,"XMLPUBVAR "+fields[0]+" "+fields[1]+";")
writeline(global_functions_hdr,"#endif")
# set/get for per-thread global defaults
if fields[3]:
- writeline(global_functions_hdr,fields[0]+" "+fields[1][:3]+"ThrDef"+fields[1][3:]+"("+fields[0]+" v);")
+ writeline(global_functions_hdr,"XMLPUBFUN "+fields[0]+" XMLCALL "+fields[1][:3]+"ThrDef"+fields[1][3:]+"("+fields[0]+" v);")
# Update the implementation file
writeline(global_functions_impl)
# writeline(global_functions_impl, "extern "+fields[0]+" "+fields[1]+";")

View file

@ -0,0 +1,21 @@
f https://mirrors.kernel.org/gnu/gettext/gettext-0.26.tar.xz d1fb86e260cfe7da6031f94d2e44c0da55903dbae0a2fa0fae78c91ae1b56f00
g https://https.git.savannah.gnu.org/git/gnulib.git~b5eb878 _ 02fa193c8b8242dcae324c9bb2d694633d891d32d50e5a8cf79f4053323aec70 gnulib-b5eb878.tar.gz
g https://gitlab.gnome.org/GNOME/libxml2.git~v2.9.9 https://gitlab.gnome.org/GNOME/libxml2/-/archive/v2.9.9/libxml2-v2.9.9.tar.gz d490df9133f8871d4678eb9e899313c3b238e455d45aaf64c9b10b76495b19e7 libxml2-v2.9.9.tar.gz
f http://ftp.unicode.org/Public/16.0.0/ucd/UnicodeData.txt ff58e5823bd095166564a006e47d111130813dcf8bf234ef79fa51a870edb48f UnicodeData-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/PropList.txt 53d614508e2a0b2305a8aa21cd60d993de9326cdf65993660dfcce4503548583 PropList-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/DerivedCoreProperties.txt 39d35161f2954497f69e08bdb9e701493f476a3d30222de20028feda36c1dabd DerivedCoreProperties-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/emoji/emoji-data.txt f1365a5173eee18e1f98b240cdc492e84a25f1ce7e0c9d1094eb29c41a22696a emoji-data-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/ArabicShaping.txt 764f420cedfc8b43d9fec251c957a5d55fc45d40f6573f162990ed1dce7e36e0 ArabicShaping-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/Scripts.txt 9e88f0a677df47311106340be8ede2ecdacd9c1c931831218d2be6d5508e0039 Scripts-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/Blocks.txt f3907b395d410f1b97342292ca6bc83dd12eb4b205f2a0c48efdef99e517d7b0 Blocks-16.0.0.txt
f http://ftp.unicode.org/Public/3.0-Update1/PropList-3.0.1.txt 909eef4adbeddbdddcd9487c856fe8cdbb8912aa8eb315ed7885b6ef65f4dc4c
f http://ftp.unicode.org/Public/16.0.0/ucd/BidiMirroring.txt d7afdadd1bbd66f5a663ac0e8f7958f18fd9491fc0bc59ec5877cb82db71db7d BidiMirroring-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/EastAsianWidth.txt 43adc76c0686a42cb370764eb8cfe2b2a45b10b855e5572a2db4a0eecce15d5b EastAsianWidth-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/LineBreak.txt e97e4259d0d20fab150b9c7b4b28abfae5cd78ca97e7f4ac6ed20d685d5f4a7c LineBreak-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/auxiliary/WordBreakProperty.txt 476464e71a4b7b779b8ba7c5671f4338fea77da8e6b6b05fb82b3fdd14603779 WordBreakProperty-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/auxiliary/GraphemeBreakProperty.txt c29360bd6f7132811d701d29069541e827eb44bfc4c8fbde8c370d6982689dc1 GraphemeBreakProperty-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/CompositionExclusions.txt 89e83cf9cc8bef6c1f8bf77e42cf6f0341dfa42e66261f4dbe9b492e7a23c8ee CompositionExclusions-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/SpecialCasing.txt 8d5de354eef79f2395a54c9c7dcebbaf3d30fc962d0f85611ea97aa973a0c451 SpecialCasing-16.0.0.txt
f http://ftp.unicode.org/Public/16.0.0/ucd/CaseFolding.txt 6f1f9c588eb4a5c718d9e8f93b782685e5c7fec872cf05e8e6878053599e09bb CaseFolding-16.0.0.txt
f http://ftp.unicode.org/Public/4.0-Update1/Blocks-4.0.1.txt c9dba71655b8787c381b3421ba2bf9a3df9e6168b5835f93fd3931c1eeff90cf Blocks-4.0.1.txt
f http://ftp.unicode.org/Public/4.0-Update1/UnicodeData-4.0.1.txt de54d68f2df927a20ea4a83dfd74a543ca7f3e3df2441576e7f6a185ec6fa217 UnicodeData-4.0.1.txt