Mail Archives: djgpp/2014/04/19/23:14:56
This is a port of GNU libunistring 0.9.3 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: to compile and use this port with DJGPP 2.03 you will have
to replace some headers in your installation and also replace some object
files in your libc.a This is required to resolve some function name clash
and to update some functionality to the DJGPP 2.04 level.
This concerns DJGPP 2.03 users only and is not optional.
The DJGPP 2.04 version of this port provides the libraries as static
libraries and as DXE3 modules too. To be able to produce working DXE3
modules it is necessary to use a freshly compiled libc.a from the CVS
respository. This is not optional.
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 configuring,
compiling and using the library with your applications. The iconv library
is available for DJGPP 2.03 as:
<ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/licv114br2.zip>
and for DJGPP 2.04 as:
<ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/licv114br2.zip>
This library has been compiled using this iconv version. Do not link with
other versions, it may not work.
The following applies to DJGPP 2.04 users _ONLY_:
You can build and use the libunistring either as static library or as a DXE3
loadable module. To build a static library, stock DJGPP 2.04 is enough. But
if you prefer a module loaded at run-time, you will need to compile and use
a freshly compiled libc.a from the CVS repository source code. 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 2.04 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.3/djgpp/dxe3 directory of the binary archive.
The static version of the libraries and binaries compiled with libc.a from
the stock djdev204 archive 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 run time. 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 choosen
intentionally 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 test suite
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.
Again, all this concerns the DJGPP 2.04 users only.
To be able to compile your applications using the DXE3 version of the
library you will need the a port of binutils that supports resolving
multiple symbol definitions during linking. The linker provided by:
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/bnu224br2.zip
and later port versions provides this features.
Please read the documentation to become familiar with this product.
This is an verbatim extract of the NEWS file:
-------------------------------------------------------------------------------
New in 0.9.3:
* Bug fixes in unistr.h functions:
- The functions u16_to_u32, u16_to_u8, u8_to_u32, u8_to_u16 now fail when
the argument is not valid. Previously, they returned a converted string
where invalid parts were each replaced with U+FFFD.
- The function u8_mbsnlen now counts an incomplete character at the end
of the argument string as 1 character. Previously, it could count as 2
or 3 characters.
- The return value of the u8_stpncpy, u16_stpncpy, u32_stpncpy functions
was incorrect.
- The u8_strcoll, u16_strcoll, u32_strcoll now try harder to give a non-zero
return value.
* Portability to MacOS X 10.6 and Cygwin 1.7.
-------------------------------------------------------------------------------
The port has been compiled using stock djdev203 (patchlevel 2) and consists
of the usual three packages that can be downloaded from ftp.delorie.com and
mirrors as (time stamp 2014-04-15):
GNU libunistring 0.9.3 library, info and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns93br2.zip
GNU libunistring 0.9.3 dvi, html, ps and pdf format documentation:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns93dr2.zip
GNU libunistring 0.9.3 source:
ftp://ftp.delorie.com/pub/djgpp/current/v2gnu/luns93sr2.zip
The binaries have been produced a second time using the stock version of
djdev204 beta library. This package is available at ftp.delorie.com and
mirrors as (time stamp 2014-04-15):
GNU libunistring 0.9.3 binary and man format documentation:
ftp://ftp.delorie.com/pub/djgpp/beta/v2gnu/luns93br2.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>
P.S.: I have removed the previous port luns93[b|d|s].zip.
- Raw text -