Mail Archives: djgpp/2018/03/04/12:16:46
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:
<ftp://ftp.delorie.com/pub/djgpp/v2gnu/licv115b.zip>
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 <djgpp AT delorie DOT com>. GNU libunistring specific bugs
must be reported to <bug-libunistring AT gnu DOT org>.
Enjoy.
Guerrero, Juan Manuel <juan DOT guerrero AT gmx DOT de>
- Raw text -