Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Mar 2002 18:28:11 +1100
From:      "Tim J. Robbins" <tim@robbins.dropbear.id.au>
To:        freebsd-standards@FreeBSD.ORG
Subject:   iconv utility and <iconv.h>
Message-ID:  <20020304182811.A29732@descent.robbins.dropbear.id.au>

next in thread | raw e-mail | index | archive | help

--9amGYk9869ThD9tj
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

Here's an implementation of the iconv utility as well as the <iconv.h> header
file and functions. For ease of testing, the iconv*() libc functions aren't
actually added to the library, they are just compiled with the utility.

A script in the tarball, unicode.pl, converts Unicode Consortium mapping
files into POSIX CHARMAP files. Some useful maps can be made from:
http://www.unicode.org/Public/MAPPINGS/
I think the licence on these files is liberal enough to allow them to be
included in FreeBSD.

There is also a UTF-8 CHARMAP file here:
http://www-124.ibm.com/developerworks/oss/cvs/locale/ul/src/cmap/charmap.utf8?sortby=rev
The licence on this file apparently isn't fit for src/ in general,
but maybe the src/gnu tree. This charmap file is *huge* and consumes a lot
of memory due to malloc() overhead and fixed-size buffers in the structures.
Using an arena allocator and string pooling would bring memory consumption
closer to the size of the file (~2.7MB).

Comments?


Tim

--9amGYk9869ThD9tj
Content-Type: application/x-tar-gz
Content-Disposition: attachment; filename="iconv.tar.gz"
Content-Transfer-Encoding: base64

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

--9amGYk9869ThD9tj--

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-standards" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020304182811.A29732>