.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
-.\" 3. All advertising materials mentioning features or use of this software
-.\" must display the following acknowledgement:
-.\" This product includes software developed by the University of
-.\" California, Berkeley and its contributors.
.\" 4. Neither the name of the University nor the names of its contributors
.\" may be used to endorse or promote products derived from this software
.\" without specific prior written permission.
.\" SUCH DAMAGE.
.\"
.\" @(#)toupper.3 8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/locale/toupper.3,v 1.15 2002/10/03 11:14:00 tjr Exp $
+.\" $FreeBSD: src/lib/libc/locale/toupper.3,v 1.21 2009/09/04 07:44:58 des Exp $
.\"
-.Dd October 3, 2002
+.Dd July 17, 2005
.Dt TOUPPER 3
.Os
.Sh NAME
-.Nm toupper
+.Nm toupper ,
+.Nm toupper_l
.Nd lower case to upper case letter conversion
.Sh LIBRARY
.Lb libc
.Sh SYNOPSIS
.In ctype.h
.Ft int
-.Fn toupper "int c"
+.Fo toupper
+.Fa "int c"
+.Fc
+.In ctype.h
+.In xlocale.h
+.Ft int
+.Fo toupper_l
+.Fa "int c"
+.Fa "locale_t loc"
+.Fc
.Sh DESCRIPTION
The
.Fn toupper
function converts a lower-case letter to the corresponding
upper-case letter.
-For single C
-.Va char Ns s
-locales (see
-.Xr multibyte 3 )
-the value of the argument is
-representable as an
-.Li unsigned char
+The argument must be representable as an
+.Vt "unsigned char"
or the value of
.Dv EOF .
+.Pp
+Although the
+.Fn toupper
+function uses the current locale, the
+.Fn toupper_l
+function may be passed a locale directly. See
+.Xr xlocale 3
+for more information.
.Sh RETURN VALUES
If the argument is a lower-case letter, the
.Fn toupper
function returns the corresponding upper-case letter if there is
-one; otherwise the argument is returned unchanged.
+one; otherwise, the argument is returned unchanged.
.Sh COMPATIBILITY
-Although
-.Fn toupper
-accepts arguments outside of the range of the
-.Vt "unsigned char"
-type in locales with large character sets,
-this is a
+The
.Bx 4.4
-extension and the
+extension of accepting arguments outside of the range of the
+.Vt "unsigned char"
+type in locales with large character sets is considered obsolete
+and may not be supported in future releases.
+The
.Fn towupper
-function should be used instead for maximum portability.
+function should be used instead.
.Sh SEE ALSO
.Xr ctype 3 ,
.Xr isupper 3 ,
-.Xr multibyte 3 ,
-.Xr towupper 3
+.Xr towupper 3 ,
+.Xr xlocale 3
.Sh STANDARDS
The
.Fn toupper