Loading...
--- Libc/Libc-262/stdlib/strfmon.3
+++ Libc/Libc-594.9.4/stdlib/strfmon.3
@@ -1,3 +1,5 @@
+.\" $NetBSD: strfmon.3,v 1.3 2005/04/04 08:19:00 wiz Exp $
+.\"
.\" Copyright (c) 2001 Jeroen Ruigrok van der Werven <asmodai@FreeBSD.org>
.\" All rights reserved.
.\"
@@ -22,34 +24,125 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.\" $FreeBSD: src/lib/libc/stdlib/strfmon.3,v 1.3 2001/10/01 13:50:03 ru Exp $
+.\" From: FreeBSD: Id: strfmon.3,v 1.7 2003/01/06 06:21:25 tjr Exp
.\"
-.Dd September 7, 2001
+.Dd October 12, 2002
.Dt STRFMON 3
.Os
.Sh NAME
-.Nm strfmon
+.Nm strfmon ,
+.Nm strfmon_l
.Nd convert monetary value to string
-.Sh LIBRARY
-.Lb libc
+.\" .Sh LIBRARY
+.\" .Lb libc
.Sh SYNOPSIS
.In monetary.h
.Ft ssize_t
-.Fn strfmon "char *s" "size_t maxsize" "const char *format" "..."
+.Fo strfmon
+.Fa "char *restrict s"
+.Fa "size_t maxsize"
+.Fa "const char *restrict format"
+.Fa "..."
+.Fc
+.In monetary.h
+.In xlocale.h
+.Ft ssize_t
+.Fo strfmon_l
+.Fa "char *restrict s"
+.Fa "size_t maxsize"
+.Fa "locale_t loc"
+.Fa "const char *restrict format"
+.Fa "..."
+.Fc
.Sh DESCRIPTION
The
.Fn strfmon
function places characters into the array pointed to by
-.Fa s
+.Fa s ,
as controlled by the string pointed to by
.Fa format .
No more than
.Fa maxsize
bytes are placed into the array.
+.Pp
+While the
+.Fn strfmon
+function uses the current locale, the
+.Fn strfmon_l
+function may be passed a locale directly. See
+.Xr xlocale 3
+for more information.
+.Pp
+The format string is composed of zero or more directives:
+ordinary characters (not
+.Cm % ) ,
+which are copied unchanged to the output stream; and conversion
+specifications, each of which results in fetching zero or more subsequent
+arguments.
+Each conversion specification is introduced by the
+.Cm %
+character.
+After the
+.Cm % ,
+the following appear in sequence:
+.Bl -bullet
+.It
+Zero or more of the following flags:
+.Bl -tag -width "XXX"
+.It Cm = Ns Ar f
+A
+.Sq Cm =
+character followed by another character
+.Ar f
+which is used as the numeric fill character.
+.It Cm ^
+Do not use grouping characters, regardless of the current locale default.
+.It Cm +
+Represent positive values by prefixing them with a positive sign,
+and negative values by prefixing them with a negative sign.
+This is the default.
+.It Cm \&(
+Enclose negative values in parentheses.
+.It Cm \&!
+Do not include a currency symbol in the output.
+.It Cm \-
+Left justify the result.
+Only valid when a field width is specified.
+.El
+.It
+An optional minimum field width as a decimal number.
+By default, there is no minimum width.
+.It
+A
+.Sq Cm #
+sign followed by a decimal number specifying the maximum
+expected number of digits after the radix character.
+.It
+A
+.Sq Cm \&.
+character followed by a decimal number specifying the number
+of digits after the radix character.
+.It
+One of the following conversion specifiers:
+.Bl -tag -width "XXX"
+.It Cm i
+The
+.Vt double
+argument is formatted as an international monetary amount.
+.It Cm n
+The
+.Vt double
+argument is formatted as a national monetary amount.
+.It Cm %
+A
+.Sq Li %
+character is written.
+.El
+.El
.Sh RETURN VALUES
-If the total number of resulting bytes including the terminating
+If the total number of resulting bytes, including the terminating
.Dv NULL
-byte is not more than
+byte, is not more than
.Fa maxsize ,
.Fn strfmon
returns the number of bytes placed into the array pointed to by
@@ -69,17 +162,20 @@
.Bl -tag -width Er
.It Bq Er E2BIG
Conversion stopped due to lack of space in the buffer.
+.It Bq Er EINVAL
+The format string is invalid.
+.It Bq Er ENOMEM
+Not enough memory for temporary buffers.
.El
.Sh SEE ALSO
-.Xr localeconv 3
+.Xr localeconv 3 ,
+.Xr xlocale 3
.Sh STANDARDS
The
.Fn strfmon
function
conforms to
-.St -xpg4
-and
-.St -susv2 .
+.St -p1003.1-2001 .
.Sh AUTHORS
.An -nosplit
The
@@ -89,4 +185,10 @@
.Pp
This manual page was written by
.An Jeroen Ruigrok van der Werven Aq asmodai@FreeBSD.org
-based on the standards' text.
+based on the standard's text.
+.Sh BUGS
+The
+.Fn strfmon
+function does not correctly handle multibyte characters in the
+.Fa format
+argument.