]> git.saurik.com Git - apple/libc.git/blobdiff - locale/FreeBSD/wcwidth.3
Libc-1082.50.1.tar.gz
[apple/libc.git] / locale / FreeBSD / wcwidth.3
index ed28bf58383de803e718938cd6adbfaa2df3dc0b..4c014cec65e655741a27a158e16b1887e87742d1 100644 (file)
 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 .\" SUCH DAMAGE.
 .\"
-.\" $FreeBSD: src/lib/libc/locale/wcwidth.3,v 1.3 2002/11/29 17:35:09 ru Exp $
+.\" $FreeBSD: src/lib/libc/locale/wcwidth.3,v 1.6 2004/08/17 04:56:03 trhodes Exp $
 .\"
-.Dd October 3, 2002
+.Dd August 17, 2004
 .Dt WCWIDTH 3
 .Os
 .Sh NAME
-.Nm wcwidth
+.Nm wcwidth ,
+.Nm wcwidth_l
 .Nd "number of column positions of a wide-character code"
 .Sh LIBRARY
 .Lb libc
 .Sh SYNOPSIS
 .In wchar.h
 .Ft int
-.Fn wcwidth "wchar_t wc"
+.Fo wcwidth
+.Fa "wchar_t wc"
+.Fc
+.In wchar.h
+.In xlocale.h
+.Ft int
+.Fo wcwidth_l
+.Fa "wchar_t wc"
+.Fa "locale_t loc"
+.Fc
 .Sh DESCRIPTION
 The
 .Fn wcwidth
 function determines the number of column positions required to
 display the wide character
 .Fa wc .
+.Pp
+Although the
+.Fn wcwidth
+function uses the current locale, the
+.Fn wcwidth_l
+function may be passed a locale directly. See
+.Xr xlocale 3
+for more information.
 .Sh RETURN VALUES
 The
 .Fn wcwidth
@@ -50,8 +68,8 @@ function returns 0 if the
 argument is a null wide character (L'\e0'),
 \-1 if
 .Fa wc
-is not printable,
-otherwise it returns the number of column positions the
+is not printable;
+otherwise, it returns the number of column positions the
 character occupies.
 .Sh EXAMPLES
 This code fragment reads text from standard input and
@@ -65,20 +83,22 @@ int column, w;
 
 column = 0;
 while ((ch = getwchar()) != WEOF) {
-       if ((w = wcwidth(ch)) > 0)
-               column += w;
-       if (column >= 20) {
+       w = wcwidth(ch);
+       if (w > 0 && column + w >= 20) {
                putwchar(L'\en');
                column = 0;
        }
        putwchar(ch);
        if (ch == L'\en')
                column = 0;
+       else if (w > 0)
+               column += w;
 }
 .Ed
 .Sh SEE ALSO
 .Xr iswprint 3 ,
-.Xr wcswidth 3
+.Xr wcswidth 3 ,
+.Xr xlocale 3
 .Sh STANDARDS
 The
 .Fn wcwidth