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>