The libmba package is a collection of mostly independent C modules potentially useful to any project. There are the usual ADTs including a linkedlist, hashmap, pool, stack, and varray, a flexible memory allocator, CSV parser, path canonicalization routine, I18N text abstraction, configuration file module, portable semaphores, condition variables, and more. The code is designed so that individual modules can be integrated into existing codebases rather than requiring the user to commit to the entire library. The code has no typedefs, few comments, and extensive man pages and HTML documentation.
uni2ascii and ascii2uni provide conversion in both directions between UTF-8 Unicode and more than thirty 7-bit ASCII equivalents, including RFC 2396 URI format and RFC 2045 Quoted Printable format, the representations used in HTML, SGML, XML, OOXML, the Unicode standard, Rich Text Format, POSIX portable charmaps, POSIX locale specifications, and Apache log files. It can also convert between the escapes used for Unicode in languages such as Ada, C, Common Lisp, Java, Pascal, Perl, Postscript, Python, Scheme, and Tcl.
The Heirloom Toolchest is a collection of standard Unix utilities. It was derived from original Unix material released as open source by Caldera and Sun, and contains multiple versions of each utility corresponding to SVID3/SVR4, SVID4/SVR4.2MP, POSIX.2-1992/SUSV2, POSIX.1-2001/SUSV3, and 4BSD (SVR4 /usr/ucb). It processes lines of arbitrary length and in many cases binary input data, supports characters in UTF-8 and many East Asian encodings, and contains more than 100 individual utilities including bc, cpio, diff, ed, file, find, grep, man, nawk, oawk, pax, ps, sed, sort, spell, and tar. Extensive documentation is included.
Traditional vi is derived from the 4BSD source and includes support for modern operating systems, 8-bit input, multi-byte character encodings like UTF-8, and features demanded by POSIX.2. It contains few additions beyond this, so it is of interest for those who look for a small but well-defined vi implementation close to that of most commercial Unix systems. It also has some features to cope with primitive terminals or slow connections.
libunibreak is an implementation of the line breaking and word breaking algorithms as described in Unicode Standard Annex 14 and Unicode Standard Annex 29. It is a superset of, and supersedes, liblinebreak. It is designed to be used in a generic text renderer. FBReader is one real-world example.
cstrings is a lightweight internationalization tool for C code. It is useful for those who find gettext too bulky and intrusive. It extracts strings from a program, and turns them into #defines in a prepended code section. It has good features for building up your message base incrementally.
uim is a multilingual input method framework. It aims to provide a flexible development platform and useful user environment for input methods. It works in many environments, including general desktop systems such as GNOME or KDE, and even in a console. It also supports Linux Zaurus and Mac OS X.