]> 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.
 .\"
 .\" 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
 .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
 .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 .
 .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
 .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
 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
 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) {
 
 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;
                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 ,
 }
 .Ed
 .Sh SEE ALSO
 .Xr iswprint 3 ,
-.Xr wcswidth 3
+.Xr wcswidth 3 ,
+.Xr xlocale 3
 .Sh STANDARDS
 The
 .Fn wcwidth
 .Sh STANDARDS
 The
 .Fn wcwidth