Message-Id: <201803041716.w24HGjgB032379@delorie.com> Date: Sun, 04 Mar 2018 14:37:49 +0100 From: "Juan Manuel Guerrero (juan DOT guerrero AT gmx DOT de) [via djgpp-announce AT delorie DOT com]" To: djgpp-announce AT delorie DOT com Subject: ANNOUNCE: DJGPP port of GNU libunistring 0.9.8 uploaded. Content-Type: text/plain; charset=ISO-8859-15; format=flowed Reply-To: djgpp AT delorie DOT com This is a port of GNU libunistring 0.9.8 to MSDOS/DJGPP. This library provides functions for manipulating Unicode strings and for manipulating C strings according to the Unicode standard. It consists of the following parts: unistr.h elementary string functions uniconv.h conversion from/to legacy encodings unistdio.h formatted output to strings uniname.h character names unictype.h character classification and properties uniwidth.h string width when using nonproportional fonts uniwbrk.h word breaks unilbrk.h line breaking algorithm uninorm.h normalization (composition and decomposition) unicase.h case folding uniregex.h regular expressions (not yet implemented) ATTENTION: the support for DJGPP 2.03 has been dropped. The DJGPP 2.05 version of this port provides the libraries as DXE3 modules instead of static libraries. DJGPP specific changes. ======================= There are only some minor adjustments required to get the gnulib code and test suite compiled with djgpp. As usual, all files required to configure and compile the package are stored in the /djgpp directory. To be able to configure and compile the package you will need LFN support. This library depends on the iconv library. This is true for comfiguring, compiling and using the library with your applications. The iconv library is available as: This library has been compiled using this iconv version. Do not link with other versions, it may not work. You can build and use the libunistring either as static library or as a DXE3 loadble module. Using DXE3 modules has the benefit that the size of the binaries that use libunistring will decrease considerably. Also it guarantees that all programs use the same ported code. Please note that the port of libunistring has been configured and compiled as DXE3 module but it contains both versions of the libraries. The DXE3 modules and binaries compiled with them are stored in the gnu/libunistring-0.9.8/djgpp/dxe3 directory of the binary archive. The static version of the libraries and binaries compiled with them are stored in their usual place so they will be used as defaults. If you want to use DXE3 modules replace the static version copying the contents of the /dxe3 directory to your installation tree. The DXE3 versions of the libraries are always pairs of files. One is the import library used during the linking of the application, the other is the DXE3 module loaded at runtime. The names are: /lib/libunistring.a /lib/libunistring.dxe The files with the ".a" extension are the import libraries created by the dxe3gen tool. The ".a" extension for the import libraries has been choosed intentionaly so that linking rules in existing Makefiles do not need to be adjusted. The sources have been configured for the CVS repository version of libc.a. To compile DXE3 modules you must compile like this: make MAKE_DXE3=y If MAKE_DXE3 is omitted then the normal static libraries will be build no matter which libc.a has been installed. To run the test suite you must start make like this: make check MAKE_DXE3=y If MAKE_DXE3 is omitted then LD_LIBRARY_PATH will not be set to point to the freshly build but still not installed DXE3 modules and the testsuite will fail because the test binaries cannot load the modules at run-time. To install the products start make like this: make install prefix=/some/dir MAKE_DXE3=y If MAKE_DXE3 is omitted then every thing will be installed except for the DXE3 modules. Please read the documentation to become familiar with this product. This is a verbatim extract of the NEWS file: ------------------------------------------------------------------------------- New in 0.9.8: * The data tables and line breaking algorithm have been updated to Unicode version 9.0.0. * In the include file unigbrk.h, the function uc_grapheme_breaks has been added to accommodate the new UAX#29 rules involving 3 or more consecutive characters. New in 0.9.7: * The license has changed from LGPLv3+ to "LGPLv3+ or GPLv2" New in 0.9.6: * The data tables and line breaking algorithm have been updated to Unicode version 8.0.0. New in 0.9.5: * The data tables and line breaking algorithm have been updated to Unicode version 7.0.0. * In the include file uniname.h, the function unicode_name_character has been extended to look for name aliases. New in 0.9.4: * The data tables and line breaking algorithm have been updated to Unicode version 6.0.0. * A new include file unigbrk.h is provided. It declares functions for grapheme cluster breaking, that is, determining the boundaries between graphemes. See the documentation chapter "Grapheme cluster breaks in strings" for details. * In the include file unictype.h, constants are defined for the group of general categories LC ("Cased Letter"). * In the include file unictype.h, functions for associating canonical combining classes with names have been added: uc_combining_class_name uc_combining_class_long_name uc_combining_class_byname * In the include file unictype.h, functions for the Arabic joining type and the Arabic joining group have been added: uc_joining_type_name uc_joining_type_long_name uc_joining_type_byname uc_joining_type uc_joining_group_name uc_joining_group_byname uc_joining_group * In the include file unictype.h, functions for new predefined properties have been added: uc_is_property_cased uc_is_property_case_ignorable uc_is_property_changes_when_lowercased uc_is_property_changes_when_uppercased uc_is_property_changes_when_titlecased uc_is_property_changes_when_casefolded uc_is_property_changes_when_casemapped But it's recommended to use the case mapping functions from unicase.h instead. * In the include file unictype.h, the functions for bidi class, formerly known as bidirectional category, have been renamed: uc_bidi_category_name -> uc_bidi_class_name uc_bidi_category_byname -> uc_bidi_class_byname uc_bidi_category -> uc_bidi_class uc_is_bidi_category -> uc_is_bidi_class The old function names still exist, but are obsolete. * In the include file unictype.h, functions for returning long names of property values have been added: uc_general_category_long_name uc_bidi_class_long_name The functions uc_general_category_byname uc_bidi_class_byname have been extended to recognize long names as well as short names. * It is now easier to detect the subminor version: The value of the variable _libunistring_version and of the macro _LIBUNISTRING_VERSION now includes also the subminor version. * The functions u8_mbtouc and u8_mbtouc_unsafe now handle ill-formed UTF-8 input in a better way, that is more compliant with W3C recommendations. * The functions u8_strcoll, u16_strcoll, u32_strcoll now produce results that are less dependent on the iconv implementation in use. * The functions u8_strstr, u16_strstr, u32_strstr now perform in O(n) time worst-case, where n is the sum of the lengths of the argument strings. ------------------------------------------------------------------------------- The port consists of the usual three packages that have been produced using djdev205 and can be downloaded from ftp.delorie.com and mirrors as (time stamp 2018-02-12): GNU libunistring 0.9.8 library, info and man format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns098b.zip GNU libunistring 0.9.8 dvi, html, ps and pdf format documentation: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns098d.zip GNU libunistring 0.9.8 source: ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns098s.zip Send suggestions and bug reports concerning the DJGPP port to comp.os.msdos.djgpp or . GNU libunistring specific bugs must be reported to . Enjoy. Guerrero, Juan Manuel