.\" Hey, Emacs! This is -*-nroff-*- you know...
.\"
.\" gencase.8: manual page for the gencase utility
.\"
.\" Copyright (C) 2004 IBM, Inc. and others.
.\"
.TH GENCASE 8 "16 September 2004" "ICU MANPAGE" "ICU @VERSION@ Manual"
.SH NAME
.B gencase
\- compile case mapping properties from the Unicode Character Database
.SH SYNOPSIS
.B gencase
[
.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
]
[
.BR "\-v\fP, \fB\-\-verbose"
]
[
.BI "\-u\fP, \fB\-\-unicode" " version"
]
[
.BI "\-c\fP, \fB\-\-copyright"
]
[
.BI "\-s\fP, \fB\-\-sourcedir" " source"
]
[
.BI "\-d\fP, \fB\-\-destdir" " destination"
]
[
.BI "\-i\fP, \fB\-\-icudatadir" " path"
]
[
.I suffix
]
.SH DESCRIPTION
.B gencase
reads some of the Unicode Character Database files and compiles their
information information into a binary form.
The resulting file,
.BR ucase.icu ,
can then be read directly by ICU, or used by
.BR pkgdata (8)
for incorporation into a larger archive or library.
.LP
The files read by
.B gencase
are described in the
.B FILES
section. If
.I suffix
is passed on the command line, the names of these files will actually
be changed to include a dash followed by
.I suffix
in their basename. For example, the file
.B UnicodeData.txt
would be looked for under the name
.BR UnicodeData\-\fIsuffix\fP.txt .
.SH OPTIONS
.TP
.BR "\-h\fP, \fB\-?\fP, \fB\-\-help"
Print help about usage and exit.
.TP
.BR "\-v\fP, \fB\-\-verbose"
Display extra informative messages during execution.
.TP
.BI "\-u\fP, \fB\-\-unicode" " version"
Specify which
.I version
of Unicode the Unicode Character Database refers to.
Defaults to
.BR 3.0.0 .
.TP
.BI "\-c\fP, \fB\-\-copyright"
Include a copyright notice into the binary data.
.TP
.BI "\-s\fP, \fB\-\-sourcedir" " source"
Set the source directory to
.IR source .
The default source directory is the current working directory.
.TP
.BI "\-d\fP, \fB\-\-destdir" " destination"
Set the destination directory to
.IR destination .
The default destination directory is specified by the environment variable
.BR ICU_DATA .
.TP
.BI "\-i\fP, \fB\-\-icudatadir" " path"
Set the directory for loading ICU data files to
.IR path .
The default ICU data directory is specified by the environment variable
.BR ICU_DATA .
.SH ENVIRONMENT
.TP 10
.B ICU_DATA
Specifies the directory containing ICU data. Defaults to
.BR @thepkgicudatadir@/@PACKAGE@/@VERSION@/ .
Some tools in ICU depend on the presence of the trailing slash. It is thus
important to make sure that it is present if
.B ICU_DATA
is set.
.SH FILES
The following files are read by
.B gencase
and are looked for in the
.I source
directory.
.TP 20
.B UnicodeData.txt
The main file in the Unicode Character Database. Contains character
properties, combining classes information, decompositions, names,
etc.\|.\|.. 
.TP
.B PropList.txt
Listing of auxiliary binary character properties.
.TP
.B DerivedCoreProperties.txt
Derived binary properties, generated by Unicode from other files.
.TP
.B SpecialCasing.txt
List of properties required for full case mapping.
.TP
.B CaseFolding.txt
Mapping from characters to their case-folded forms. (Note: this file
is derived from
.B UnicodeData.txt
and
.B SpecialCasing.txt
when generated by the Unicode Consortium.)
.SH VERSION
@VERSION@
.SH COPYRIGHT
Copyright (C) 2004 IBM, Inc. and others.
.SH SEE ALSO
.BR pkgdata (8)
