-.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
+
.\" and Copyright (C) 2014 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
.\" ISO/IEC 9899:1999
.\"
-.TH TOWUPPER 3 2014-03-18 "GNU" "Linux Programmer's Manual"
+.TH TOWUPPER 3 2017-09-15 "GNU" "Linux Programmer's Manual"
.SH NAME
towupper, towupper_l \- convert a wide character to uppercase
.SH SYNOPSIS
.nf
.B #include <wctype.h>
-.sp
+.PP
.BI "wint_t towupper(wint_t " wc );
-
+.PP
.BI "wint_t towupper_l(wint_t " wc ", locale_t " locale );
.fi
-.sp
+.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
-.sp
+.PP
.BR towupper_l ():
.PD 0
.RS 4
In all other cases,
.I wc
is returned unchanged.
-
+.PP
The
.BR towupper_l ()
function performs the same task,
the locale specified by
.IR locale .
The behavior of
-.BR towupper_l()
+.BR towupper_l ()
is undefined if
.I locale
is the special locale object
(see
.BR duplocale (3))
or is not a valid locale object handle.
-
+.PP
The argument
.I wc
must be representable as a
returns its uppercase equivalent;
otherwise it returns
.IR wc .
-.SH ATTRIBUTES
-.SS Multithreading (see pthreads(7))
-The
-.BR towupper ()
-function is thread-safe with exceptions.
-It can be safely used in multithreaded applications, as long as
-.BR setlocale (3)
-is not called to change the locale during its execution.
-.\" FIXME need a thread-safety statement about towupper_l()
.SH VERSIONS
The
.BR towupper_l ()
function first appeared in glibc 2.3.
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.TS
+allbox;
+lb lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR towupper ()
+T} Thread safety MT-Safe locale
+T{
+.BR towupper_l ()
+T} Thread safety MT-Safe
+.TE
.SH CONFORMING TO
.BR towupper ():
C99, POSIX.1-2001 (XSI);
present as an XSI extension in POSIX.1-2008, but marked obsolete.
-
+.PP
.BR towupper_l ():
POSIX.1-2008.
.SH NOTES