1Unicode is used to generate the unicode data in src/corelib/text/. 2 3To update: 4* Find the data (UAX #44, UCD; not the XML version) at 5 ftp://www.unicode.org/Public/zipped/$Version/ 6* Unpack the zip file; for each file in data/, replace with the new 7 version; find the *BreakProperty.txt in auxiliary/. (These last are 8 only in the zip, not in the web-space's unpacked versions.) 9* In tst_QTextBoundaryFinder's data/ sub-directory, update its files 10 from the auxiliary/ sub-directory of the UCD data. 11* If needed, add an entry to enum QChar::UnicodeVersion for the new 12 Unicode version 13* In that case, also update main.cpp's initAgeMap and DATA_VERSION_S* 14 to match 15* Build this project. Its binary, unicode, ignores command-line 16 options and assumes it is being run from this directory. When run, 17 it produces lots of output. If it gets as far as updating 18 qunicodetables.cpp the output hopefully doesn't matter. 19* It'll end prematurely with a qFatal() message if it needs updates, 20 either in main.cpp or in QChar: 21 * "unassigned or unhandled age value:" initAgeMap() and 22 QChar::UnicodeVersion; 23 * "Unhandled script property value:" initScriptMap(), QChar::Script, 24 qharfbuzzng.cpp's _qtscript_to_hbscript[] array and 25 qfontconfigdatabase.cpp's specialLanguages. 26 * "unassigned word break class:" enum WordBreakClass, 27 word_break_class_string and initWordBreak(); 28* Assertions or other qFatal()s may trigger: if so, study code and 29 understand what's more complicated about this update; talk to folk 30 named in the git logs, maybe push a WIP to gerrit to solicit 31 advice. Some bit-field may need to be expanded, for example. In some 32 cases QChar may need additions to some of its enums. 33* Build with the modified code, fix any compilation issues, make check 34 in suitable directories, including tst_QTextBoundaryFinder. 35* That may have updated qtbase/src/corelib/text/qunicodetables.cpp; if 36 so the update matters; be sure to commit the changes to data/ at the 37 same time and update text/qt_attribution.json to match; use the UCD 38 Revision number, rather than the Unicode standard number, as the 39 Version, for all that qunicodetables.cpp uses the latter (see the 40 'UAX #44, UCD' page linked from https://www.unicode.org/ucd/ for the 41 table with this). 42* If there are enum additions in qchar.h (public API), be sure to also 43 update the documentation in qchar.cpp for each affected enum, 44 respecting the existing ordering. 45* If you don't normally build in the source tree, remember to delete 46 qtbase/.qmake.stash while you're cleaning up. 47 48The script writingSystems.sh generates a list of writing systems, 49ostensibly as a the basis for updating QFontDatabase::WritingSystem 50enum; however, the Release 20 output of it contains many more writing 51systems than are present in that enum, suggesting it has not been run 52in a very long time. Further research needed. 53