The utility montbl is provided to allow new LC_MONETARY locales to be defined; it reads a specification file, containing a definition of the currency symbol for a particular locale, and produces a binary table file, to be read by setlocale(S), which determines the behavior of the nl_langinfo(S) routine.
The information supplied in the specification file consists of a line in the following format:
CRNCYSTR = string
The ``='' can be separated from the keyword and string fields by zero or more space or tab characters.
The string is a sequence of characters surrounded by quotes (").
The first character of the string should be ``-'' if the symbol is
to precede the currency value, or ``+'' if it should appear after
Characters within the string can be specified both literally
and using ``\'' escapes; the following three strings are equivalent:
"+\x44M" hexadecimal escapes
"+D\115" octal escapes
All characters following a hash (#) are treated as a comment and ignored up to the end of the line, unless the hash is within a quoted string.
The binary table output is placed in a file named currency, within the current directory. This file should be copied or linked to the correct place in the setlocale file tree (see locale(M)). To prevent accidental corruption of the output data, the file is created with no write permission; if the montbl utility is run in a directory containing a write-protected currency file, the utility will ask if the existing file should be replaced -- any response other than ``yes'' or ``y'' will cause montbl to terminate without overwriting the existing file.
If the specfile argument is missing,
the specification information is read from the standard input.
Any lines in the specification file which are syntactically incorrect, or contain an unrecognized value instead of CRNCYSTR, will cause an error message to be issued to the standard error output, specifying the line number on which the error was detected. The line will be ignored, and processing will continue.
If the output file, currency, cannot be opened for writing, processing will terminate with the error message, ``Cannot create table file''.