Gnulib Module List

This is a list of the modules which make up gnulib, with dependencies.

Support for systems lacking ANSI C 89

stdlib A GNU-like <stdlib.h>.
exit exit function: program termination.
atexit atexit function: register a function to be called at program termination.
strtod strtod function: convert string to double.
strtol strtol function: convert string to long.
strtoul strtoul function: convert string to unsigned long.
memchr memchr function: scan memory for a byte.
memcmp memcmp function: compare memory areas.
memcpy memcpy function: copy memory area.
memmove memmove function: copy memory area.
memset memset function: fill memory with a constant byte.
strcspn strcspn function: search a string for any of a set of characters.
strpbrk strpbrk function: search a string for any of a set of characters.
strerror strerror function: return string describing error code.
mktime mktime function: convert broken-down time to linear time.
Most of these modules are not listed among dependencies below, for simplicity.

Enhancements for ANSI C 89 functions

Diagnostics <assert.h>

assert Allow the installer to disable assertions through "configure --disable-assert".
verify Compile-time assert-like macros.

Mathematics <math.h>

fpieee Ensure IEEE compliant floating-point operations (overflow and division by zero).

Input/output <stdio.h>

fflush Discard pending data on both input and output streams.
fseterr Set the error indicator of a stream.
tmpfile tmpfile function: create a temporary file.

Memory management functions <stdlib.h>

calloc calloc function that is glibc compatible.
eealloc Memory allocation with expensive empty allocations (glibc compatible).
free Work around incompatibility on older systems where free (NULL) fails.
malloc malloc function that is glibc compatible.
realloc realloc function that is glibc compatible.
pagealign_alloc Memory allocation aligned on page boundaries.

Sorting functions <stdlib.h>

mpsort Sort a vector of pointers to data.

Date and time <time.h>

fprintftime like nstrftime, but output the formatted date to a FILE* stream
strftime nstrftime function: convert date and time to string, with GNU extensions.

Extra functions based on ANSI C 89

Memory management functions <stdlib.h>

xsize Checked size_t computations.
xalloc Memory allocation with out-of-memory checking. Also see xalloc-die.
xalloc-die Report a memory allocation failure and exit.
alloca Memory allocation on the stack.
alloca-opt Memory allocation on the stack, as an optional optimization. It allows using the alloca macro if and only if the autoconf tests define HAVE_ALLOCA.
malloca Safe automatic memory allocation.
xmalloca Safe automatic memory allocation with out of memory checking.
xmemdup0 Copy a block of arbitrary bytes, and append a trailing NUL.

Integer arithmetic functions <stdlib.h>

count-one-bits Counts the number of 1-bits in a word.
gcd Greatest common divisor.
minmax MIN, MAX macros.

Environment variables <stdlib.h>

putenv putenv function: change or add an environment variable.
setenv setenv function: set an environment variable.
unsetenv unsetenv function: remove an environment variable.
xsetenv xsetenv function: set an environment variable, with out-of-memory checking. unsetenv function: remove an environment variable.

Character handling <ctype.h>

c-ctype Character handling in C locale.

String handling <string.h>

bcopy Old BSD bcopy function: copy memory area.
memchr2 memchr2 function: scan memory for the first of two bytes.
memmem memmem function: efficiently locate first substring in a buffer.
memmem-simple memmem function: locate first substring in a buffer.
mempcpy mempcpy function: copy memory area, return point after last written byte.
memrchr memrchr function: scan memory for a byte, from the right end.
rawmemchr rawmemchr function: Find the first occurrence of C in S.
stpcpy stpcpy function: copy a string, returning a pointer to its end.
stpncpy stpncpy function: copy a size-bounded string, returning a pointer to its end.
c-strcase Case-insensitive string comparison functions in C locale.
strcase Case-insensitive string comparison functions.
c-strcaseeq Optimized case-insensitive string comparison in C locale.
c-strcasestr Efficient case-insensitive searching in a string in C locale.
strcasestr strcasestr function: efficient case-insensitive search for unibyte substring.
strcasestr-simple strcasestr function: case-insensitive search for unibyte substring.
strchrnul strchrnul function: Find the first occurrence of C in S or the final NUL byte.
strdup strdup function: duplicate a string.
streq Optimized string comparison.
strnlen strnlen function: determine the length of a size-bounded string.
strnlen1 Quick string length estimation.
strndup strndup function: duplicate a size-bounded string.
strsep strsep function: extract token from string.
strstr strstr function: efficiently locate first substring in a buffer.
c-strstr Search for a substring in a string in C locale.
trim trim function: remove leading and/or trailing whitespaces
fstrcmp Fuzzy string comparison.
xstrndup Duplicate a bounded initial segment of a string, with out-of-memory checking.

Mathematics <math.h>

printf-frexp printf_frexp function: split a double into fraction and mantissa, for hexadecimal printf, without requiring libm.

Numeric conversion functions <stdlib.h>

c-strtod Convert string to double in C locale.
c-strtold Convert string to long double in C locale.
xstrtod Convert string to double, with error checking.
xstrtol Convert string to long or unsigned long, with error checking.
xstrtold Convert string to long double, with error checking.

Date and time <time.h>

getdate Convert a date/time string to linear time.
timegm Convert calendar time to simple time, inverse of mktime.
tzset tzset - initialize time conversion information

Input/Output <stdio.h>

unlocked-io Enable faster, non-thread-safe stdio functions if available.
fwriteerror Detect write error on a stream.
vasnprintf vsprintf with automatic memory allocation and bounded output size.
vasprintf vsprintf with automatic memory allocation.
xprintf a wrapper around printf that calls error upon ENOMEM or EILSEQ errors
xvasprintf vasprintf and asprintf with out-of-memory checking. Also see xalloc-die.

Signal handling <signal.h>

fatal-signal Emergency actions in case of a fatal signal.
raise Send a signal to the executing process.
strsignal strsignal function: return string describing signal.

Command-line arguments

argmatch Search for an exact or abbreviated match of a string in an array of strings.
version-etc Print --version output.
version-etc-fsf Copyright variable for FSF projects
long-options Handle --help and --version options.

Container data structures

list Abstract sequential list data type.
array-list Sequential list data type implemented by an array.
carray-list Sequential list data type implemented by a circular array.
linked-list Sequential list data type implemented by a linked list.
avltree-list Sequential list data type implemented by a binary tree.
rbtree-list Sequential list data type implemented by a binary tree.
linkedhash-list Sequential list data type implemented by a hash table with a linked list.
avltreehash-list Sequential list data type implemented by a hash table with a binary tree.
rbtreehash-list Sequential list data type implemented by a hash table with a binary tree.
sublist Sequential list data type backed by another list.
oset Abstract ordered set data type.
array-oset Ordered set data type implemented by an array.
avltree-oset Ordered set data type implemented by a binary tree.
rbtree-oset Ordered set data type implemented by a binary tree.

Cryptographic computations (low-level)

crypto/arcfour ARCFOUR stream cipher implementation
crypto/arctwo ARCTWO block cipher implementation
crypto/des DES block cipher.
crypto/hmac-md5 Compute hashed message authentication codes with MD5.
crypto/hmac-sha1 Compute hashed message authentication codes with SHA1.
crypto/md2 Compute MD2 checksum.
crypto/md4 Compute MD4 checksum.
crypto/md5 Compute MD5 checksum.
crypto/rijndael Rijndael block cipher.
crypto/sha1 Compute SHA1 checksum.
crypto/sha256 Compute SHA224 and SHA256 checksums.
crypto/sha512 Compute SHA384 and SHA512 checksums.

Cryptographic computations (high-level)

crypto/gc Core files for generic crypto package
crypto/gc-arcfour Generic crypto wrappers for ARCFOUR stream cipher.
crypto/gc-arctwo Generic crypto wrappers for ARCTWO block cipher.
crypto/gc-camellia Generic crypto wrappers for Camellia block cipher.
crypto/gc-des Generic crypto wrappers for DES block cipher.
crypto/gc-hmac-md5 Generic crypto wrappers for HMAC-MD5 functions.
crypto/gc-hmac-sha1 Generic crypto wrappers for HMAC-SHA1 functions.
crypto/gc-md2 Generic crypto wrappers for MD2 functions.
crypto/gc-md4 Generic crypto wrappers for MD4 functions.
crypto/gc-md5 Generic crypto wrappers for MD5 functions.
crypto/gc-pbkdf2-sha1 Password-Based Key Derivation Function according to PKCS#5/RFC2898
crypto/gc-random Generic crypto random number functions.
crypto/gc-rijndael Generic crypto wrappers for rijndael block cipher.
crypto/gc-sha1 Generic crypto wrappers for SHA-1 functions.

Misc

base64 Encode binary data using printable characters (base64).
check-version Check version string compatibility.
crc Compute cyclic redundancy codes.
diacrit Decomposition of composed ISO-8859-1 characters.
diffseq Compute the difference between two sequences.
getline Read a line from a stream.
getdelim Read character delimited data from a stream.
getnline Read a line from a stream, with bounded memory allocation.
getndelim2 Read a line from a stream, stopping at one of 2 delimiters, with bounded memory allocation.
linebuffer Read a line from a stream.
memxor memxor function: binary exclusive or operation on two memory blocks
obstack Memory allocation, optimized for stack-like allocation patterns.
obstack-printf Formatted printing into an obstack.
obstack-printf-posix POSIX formatted printing into an obstack.
hash-pjw Compute a hash value for a NUL-terminated string.
hash Parametrizable hash table.
readline Simple implementation of readline.
readtokens Read tokens from a stream.
readtokens0 Read NUL-separated tokens from a stream.
strverscmp Compare strings holding version numbers.

Support for systems lacking ISO C 99

Core language properties

flexmember Flexible array member support
fpucw Set the FPU control word, so as to allow correct long double computations.
func Make sure __func__ is usable even on non-C99 platforms.
inline Test for the inline keyword or equivalent.
longlong Define HAVE_LONG_LONG_INT if long long int works.
vararrays Variable-length arrays

Sizes of integer types <limits.h>

size_max Provide SIZE_MAX.

Variable arguments <stdarg.h>

stdarg An <stdarg.h> that conforms to C99.

Boolean type and values <stdbool.h>

stdbool An <stdbool.h> that nearly conforms to C99. (Nearly: casts to bool may not work.)

Integer types and values <stdint.h>

stdint A <stdint.h> that nearly conforms to C99. Assumes typical host with 8-bit bytes, two's complement representation, and no padding or trap representations, with int widths equal to 8, 16, 32, and 64 bits. {uint,int}_fast{8,16,32,64}_t may not correspond to the fastest types available on the system. Macros are used instead of typedefs.

Input/output <stdio.h>

stdio A GNU-like <stdio.h>.
snprintf snprintf function: print formatted output to a fixed length string
vsnprintf vsnprintf function: print formatted output from an stdarg argument list to a fixed length string

Numeric conversion functions <stdlib.h>

strtoll strtoll function: convert string to long long.
strtoull strtoull function: convert string to unsigned long long.

Functions for greatest-width integer types <inttypes.h>

imaxabs imaxabs function: absolute value of intmax_t.
imaxdiv imaxdiv function: division of intmax_t.
inttypes An <inttypes.h> that nearly conforms to C99.
strtoimax strtoimax function: convert string to intmax_t.
strtoumax strtoumax function: convert string to uintmax_t.

Extended multibyte and wide character utilities <wchar.h>

wchar A <wchar.h> that works around platform issues.

Wide character classification and mapping utilities <wctype.h>

wctype A <wctype.h> that conforms better to C99.

Characteristics of floating types <float.h>

float A correct <float.h>.

Mathematics <math.h>

ceil ceil function: round towards positive infinity.
ceilf ceilf function: round towards positive infinity.
ceill ceill function: round towards positive infinity.
floor floor function: round towards negative infinity.
floorf floorf function: round towards negative infinity.
floorl floorl function: round towards negative infinity.
frexp frexp function: split a double into its constituents.
frexp-nolibm frexp function: split a double into its constituents, without requiring libm.
frexpl frexpl function: split a long double into its constituents.
frexpl-nolibm frexpl function: split a long double into its constituents, without requiring libm.
isfinite isfinite macro: test for finite value (zero, subnormal, or normal, and not infinite or NaN).
isnan isnan macro: test for NaN value.
isnanf isnanf function: test for NaN.
isnanf-nolibm isnanf function: test for NaN, without requiring libm.
isnand isnand function: test for NaN.
isnand-nolibm isnand function: test for NaN, without requiring libm.
isnanl isnanl function: test for NaN.
isnanl-nolibm isnanl function: test for NaN, without requiring libm.
ldexpl ldexpl function: multiply a long double by a power of 2.
math A GNU-like <math.h>.
mathl C99 functions for transcendental functions with long double arguments.
round round function: round toward nearest, breaking ties away from zero.
roundf roundf function: round toward nearest, breaking ties away from zero.
roundl roundl function: round toward nearest, breaking ties away from zero.
signbit signbit macro: Determine the sign bit of a floating-point number.
trunc trunc function: round towards zero.
truncf truncf function: round towards zero.
truncl truncl function: round towards zero.

Enhancements for ISO C 99 functions

Input/output <stdio.h>

printf-safe Ensures that the *printf functions provided by the *printf-posix modules recognize non-IEEE-754 values of long double arguments and display them as NaN (rather than producing undefined behavior).

Extra functions based on ISO C 99

Mathematics <math.h>

printf-frexpl printf_frexpl function: split a long double into fraction and mantissa, for hexadecimal printf, without requiring libm.

Numeric conversion functions <stdlib.h>

intprops Properties of integer types
inttostr Convert integers to printable strings.
xstrtoimax Convert string to intmax_t, with error checking.
xstrtoumax Convert string to uintmax_t, with error checking.

Extended multibyte and wide character utilities <wchar.h>

mbchar Multibyte character data type.
mbiter Iterating through multibyte strings.
mbuiter Iterating through multibyte strings.
mbfile Multibyte character I/O.

Support for systems lacking POSIX:2001

arpa_inet A GNU-like <arpa/inet.h>.
calloc-posix calloc function: allocate memory with indefinite extent.
chown chown function: change ownership of a file, following symlinks.
dup2 dup2 function: duplicate an open file descriptor.
environ environ variable: storage of environment variables.
EOVERFLOW EOVERFLOW macro
fchdir fchdir function: change current directory, given an open file descriptor.
fcntl Like <fcntl.h>, but with non-working flags defined to 0.
fopen fopen function: open a stream to a file.
fprintf-posix POSIX compatible fprintf function: print formatted output to a stream
freopen freopen function: open a stream to a file.
fseek fseek function: Reposition a FILE stream.
fseeko fseeko function: Reposition a FILE stream.
ftell ftell function: Retrieve the position of a FILE stream.
ftello ftello function: Retrieve the position of a FILE stream.
ftruncate ftruncate function: truncate an open file to a specified length.
getaddrinfo getaddrinfo function: Get address information.
getcwd Return the current working directory.
getgroups getgroups function: return the supplementary group IDs of the current process.
gethostname gethostname function: Return machine's hostname.
getlogin_r getlogin_r function: Get user name to a buffer allocated by the caller.
getsubopt getsubopt: Parse comma separated list into words.
gettimeofday gettimeofday function: return current time.
iconv_open Character set conversion.
inet_ntop Convert internet address from internal to printable, presentable format.
inet_pton Convert internet address from presentation to internal, binary, format.
locale A <locale.h> that conforms to POSIX.
lseek lseek function: Reposition a file descriptor.
lstat lstat function: return information about a file or symbolic link.
malloc-posix malloc function: allocate memory with indefinite extent.
mkdir mkdir function: create a directory.
mkdtemp mkdtemp function: create a private temporary directory.
mkstemp mkstemp function: create a private temporary file.
netinet_in A <netinet/in.h> for systems lacking it.
open open function: open a descriptor to a file.
poll poll function: wait for some event on a set of file descriptors.
printf-posix POSIX compatible printf function: print formatted output to standard output
readlink readlink function: read the value of a symbolic link.
realloc-posix realloc function: allocate memory with indefinite extent.
signal A GNU-like <signal.h>.
sleep sleep function: pause execution of the current thread.
snprintf-posix POSIX compatible snprintf function: print formatted output to a fixed length string
sprintf-posix POSIX compatible sprintf function: print formatted output to a string
string A GNU-like <string.h>.
strings A substitute <strings.h>.
tempname gen_tempname function: create a private temporary file or directory.
time A more-standard <time.h>.
time_r Reentrant time functions like localtime_r.
timespec timespec-related declarations
nanosleep nanosleep function: pause execution for a specified time.
regex Regular expression matching.
rename rename function: change the name or location of a file.
rmdir rmdir function: delete a directory.
search A GNU-like <search.h>.
sigaction POSIX compatible signal handlers.
sigprocmask POSIX compatible signal blocking.
socklen Declare socklen_t in config.h if the system doesn't have it.
ssize_t Define ssize_t if it does not already exist.
strptime Convert a string representation of time to a tm structure.
strtok_r strtok_r function: split string into tokens, thread safe.
sys_select A <sys/select.h> for systems lacking it.
sys_socket A POSIX-like <sys/socket.h>.
sys_stat A <sys/stat.h> for systems with missing declarations.
sys_time A <sys/time.h> that conforms better to POSIX.
tsearch Binary tree data structure.
unistd A GNU-like <unistd.h>.
utime utime function: change access and/or modification times of a file.
vasnprintf-posix POSIX compatible vsprintf with automatic memory allocation and bounded output size.
vasprintf-posix POSIX compatible vsprintf with automatic memory allocation.
vfprintf-posix POSIX compatible vfprintf function: print formatted output to a stream
vprintf-posix POSIX compatible vprintf function: print formatted output to standard output
vsnprintf-posix POSIX compatible vsnprintf function: print formatted output to a fixed length string
vsprintf-posix POSIX compatible vsprintf function: print formatted output to a string
wcwidth Determine the number of screen columns needed for a character.

Compatibility checks for POSIX:2001 functions

clock-time Check for clock_gettime and clock_settime.
d-ino Check whether struct dirent has a member named d_ino.
d-type Check whether struct dirent has a member named d_type.
link-follow Determine whether link("symlink", "foo") follows the symlink.
rename-dest-slash rename function: change the name or location of a file.
rmdir-errno rmdir errno for nonempty directories
unlink-busy Test whether a running program can be unlinked.
winsz-ioctl Test whether use of TIOCGWINSZ requires sys/ioctl.h.
winsz-termios Test whether use of TIOCGWINSZ requires termios.h.

Enhancements for POSIX:2001 functions

chdir-long chdir-like function that tries not to fail due to ENAMETOOLONG
dirname Extract specific portions of filenames.
getopt Process command line arguments.
iconv_open-utf Character set conversion support for UTF-{16,32}{BE,LE} encodings.
unistd-safer File descriptor functions that avoid clobbering STD{IN,OUT,ERR}_FILENO.
fnmatch GNU implementation of the fnmatch function.
fnmatch-posix fnmatch function: wildcard matching.
fnmatch-gnu fnmatch function: wildcard matching, with GNU extensions.
glob glob function: Search for files and directories with paths matching a pattern, with GNU extensions.
exclude Manage list of filenames or wildcard patterns for --exclude option processing.

Extra functions based on POSIX:2001

Input/output

xprintf-posix A wrapper around printf with POSIX compatible format string interpretation, that calls error upon ENOMEM or EILSEQ errors.
xvasprintf-posix vasprintf and asprintf with POSIX compatible format string interpretation and with out-of-memory checking. Also see xalloc-die.

Numeric conversion functions

human Convert a number (usually a file size) to a human readable string, possibly with K/M/G suffix.

File system functions

acl Access control lists of files. (Unportable.)
areadlink Reading symbolic links without size limitation.
areadlink-with-size Return the contents of a symbolic link, without size limitations.
backupfile Determination of the filename of a backup file, according to user environment variables.
canonicalize Return the canonical absolute name of a given file.
canonicalize-lgpl Canonical absolute file name (LGPLed version).
chdir-safer like chdir, but safer
clean-temp Temporary directories and temporary files with automatic cleanup.
copy-file Copying of files.
fsusage Return file system space usage info.
dirfd Retrieving the file descriptor of an open directory stream. (Unportable.)
double-slash-root Check whether // is distinct from /.
euidaccess euidaccess function: check effective user's permissions for a file.
file-type Return a string describing the type of a file.
fileblocks Estimate number of blocks of a file, if struct stat doesn't have st_blocks.
filemode Return a string (?rwxrwxrwx format) describing the type and permissions of a file.
filename Construct a full filename by concatenating a directory name, a relative filename, and a suffix.
filenamecat Concatenate two arbitrary file names.
fts Traverse a file hierarchy.
fts-lgpl Traverse a file hierarchy (LPGL'ed version).
isdir Determine whether a directory exists.
lchmod lchmod that is actually chmod (!) on hosts lacking lchmod
lchown lchown function: change ownership of a file, without following symlinks.
mkancesdirs Ensure the existence of the ancestor directories of a file.
mkdir-p Ensure that a directory and its parents exist.
modechange Manipulation of mode changes specified by strings (e.g. as first argument of chmod utility).
mountlist Return list of mounted file systems.
openat Open a file at a directory.
openat-die Report a save- or restore-cwd failure in our openat replacement and then exit.
pathmax Return maximum size of reasonable pathnames. (Unportable: Hurd has no limit.)
read-file read_file function: read the contents of a file into a string
same Determine whether two file names refer to the same directory entry of the same directory.
save-cwd Save and restore the current working directory.
savedir Return the entries of a directory (just the names) as an argz string.
savewd Save and restore the working directory, possibly using a child process.
stat-macros stat-related macros
stat-time stat-related time functions
tmpdir Determine a temporary directory.
unlinkdir Determine (and maybe change) whether we can unlink directories.
utimecmp compare file time stamps
utimens Set file access and modification times.
write-any-file Determine whether we can write any file.
xgetcwd Return the current working directory, without size limitations.
xreadlink Reading symbolic links without size limitation.

File system as inode set

cycle-check help detect directory cycles efficiently
dev-ino declare a simple (device, inode) struct
file-set Very specialized set-of-files code.
hash-triple Hash functions for file-related triples: name, device, inode.
i-ring a simple ring buffer
same-inode compare inodes

File descriptor based Input/Output

fcntl-safer File descriptor functions that avoid clobbering STD{IN,OUT,ERR}_FILENO.
safe-read An interface to the read function that retries after interrupts.
safe-write An interface to the write function that retries after interrupts.
full-read An interface to the read function that reads all it is asked to read.
full-write An interface to the write function that writes all it is asked to write.
binary-io Binary mode I/O.
isapipe Test whether a file descriptor is a pipe.

File stream based Input/Output

close-stream Close a stream, with nicer error checking than fclose's.
closein Close all standard streams, resetting seekable stdin if needed, and exiting with a diagnostic on error.
closeout Close standard output and standard error, exiting with a diagnostic on error.
fbufmode fbufmode function: Determine the buffering mode of a FILE stream.
fopen-safer fopen function that avoids clobbering std{in,out,err}.
fpending Determine the number of bytes waiting in the output buffer of a stream.
fpurge fpurge function: Flush buffers.
freadable freadable function: Determine whether a FILE stream supports reading.
freadahead freadahead function: Determine the number of bytes waiting in the input buffer of a stream.
freading freading function: Determine whether a FILE stream is currently doing reading.
freadptr freadptr function: Pointer to the input buffer of a stream.
freadseek freadseek function: Read and discard input from a stream.
fwritable fwritable function: Determine whether a FILE stream supports writing.
fwriting fwriting function: Determine whether a FILE stream is currently doing writing.
getpass getpass function: read a password from /dev/tty.
getpass-gnu getpass function: read a password of arbitrary length from /dev/tty.
stdlib-safer File stream functions that avoid clobbering std{in,out,err}.
tmpfile-safer tmpfile function that avoids clobbering std{in,out,err}.

Users and groups

getugroups Return the group IDs of a user.
group-member Determine whether the current process has the permissions of a given group ID.
idcache Username <--> uid and groupname <--> gid conversions, with cache for speed.
userspec Parse a `user:group' specifier (e.g. the first argument of chown utility).

Date and time

gethrxtime Get high resolution real time.
gettime Return current time, with nanosecond resolution.
settime Set the current time, with nanosecond resolution.
posixtm Convert a date/time string (POSIX syntax) to linear time or broken-down time.
xnanosleep a more convenient interface to nanosleep

Networking functions

xgethostname Return machine's hostname, without size limitations.
canon-host Canonicalize a host name: return a name other hosts can understand, i.e. usually the host name including FQDN.
sockets Wrappers for Windows socket functions

Multithreading

lock Locking in multithreaded situations.
tls Thread-local storage in multithreaded situations.
openmp Detection of OpenMP support.

Signal handling

c-stack Stack overflow handling, causing program exit.
libsigsegv Handle page faults in user mode.
sig2str Convert between signal names and signal numbers.

Internationalization functions

gettext Translate messages to user's native language.
gettext-h Translate messages to user's native language if the gettext module is also used.
propername Localization of proper names.
iconv Character set conversion.
striconv Character set conversion of strings made easy, uses iconv.
xstriconv Character set conversion of strings made easy, uses iconv, with out-of-memory checking.
striconveh Character set conversion of strings with error handling, uses iconv.
striconveha Character set conversion of strings with error handling and autodetection, uses iconv.
localcharset Return current locale's character encoding.
hard-locale Determine whether the current locale is different from the "C" locale.
localename Return current locale's name, according to glibc naming conventions.
mbslen mbslen function: Determine the number of multibyte characters in a string.
mbsnlen mbsnlen function: Determine the number of multibyte characters in a string.
mbschr mbschr function: search a string for a character.
mbsrchr mbsrchr function: search a string for a character, from the end.
mbsstr mbsstr function: search for a substring in a string.
mbscasecmp mbscasecmp function: case-insensitive string comparison.
mbsncasecmp mbsncasecmp function: case-insensitive string prefix comparison.
mbspcasecmp mbspcasecmp function: case-insensitive string prefix comparison.
mbscasestr mbscasestr function: case-insensitive search for a substring in a string.
mbscspn mbscspn function: search a string for any of a set of characters.
mbspbrk mbspbrk function: search a string for any of a set of characters.
mbsspn mbsspn function: search a string for any outside a set of characters.
mbssep mbssep function: split string into tokens, thread safe.
mbstok_r mbstok_r function: split string into tokens, thread safe.
mbswidth Determine the number of screen columns needed for a string.
memcasecmp Case-insensitive memory area comparison.
memcoll Locale dependent memory area comparison.
xmemcoll Locale dependent memory area comparison, with error checking.
unicodeio Unicode character output to streams with locale dependent encoding.
rpmatch Locale dependent classification of a response as matching "yes" or "no".
yesno Read a response from the user, and its classification as matching "yes" or "no".
bison-i18n Support for internationalization of bison-generated parsers.

Unicode string functions

unitypes Base types for Unicode string functions.
ucs4-utf8 Conversion UCS-4 to UTF-8.
ucs4-utf16 Conversion UCS-4 to UTF-16.
utf8-ucs4-unsafe Conversion UTF-8 to UCS-4.
utf16-ucs4-unsafe Conversion UTF-16 to UCS-4.
utf8-ucs4 Conversion UTF-8 to UCS-4.
utf16-ucs4 Conversion UTF-16 to UCS-4.
unistr/base Base layer for elementary Unicode string functions.
unistr/u8-to-u16 Convert UTF-8 string to UTF-16 string.
unistr/u8-to-u32 Convert UTF-8 string to UTF-32 string.
unistr/u16-to-u8 Convert UTF-16 string to UTF-8 string.
unistr/u16-to-u32 Convert UTF-16 string to UTF-32 string.
unistr/u32-to-u8 Convert UTF-32 string to UTF-8 string.
unistr/u32-to-u16 Convert UTF-32 string to UTF-16 string.
unistr/u8-check Check UTF-8 string.
unistr/u16-check Check UTF-16 string.
unistr/u32-check Check UTF-32 string.
unistr/u8-chr Search character in piece of UTF-8 string.
unistr/u16-chr Search character in piece of UTF-16 string.
unistr/u32-chr Search character in piece of UTF-32 string.
unistr/u8-cmp Compare pieces of UTF-8 strings.
unistr/u16-cmp