WCWIDTH(3) BSD Library Functions Manual WCWIDTH(3)
NAME
wcwidth, wcwidth_l -- number of column positions of a wide-character code
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <wchar.h>
int
wcwidth(wchar_t wc);
#include <wchar.h>
#include <xlocale.h>
int
wcwidth_l(wchar_t wc, locale_t loc);
DESCRIPTION
The wcwidth() function determines the number of column positions required to display the wide character
wc.
Although the wcwidth() function uses the current locale, the wcwidth_l() function may be passed a
locale directly. See xlocale(3) for more information.
RETURN VALUES
The wcwidth() function returns 0 if the wc argument is a null wide character (L'\0'), -1 if wc is not
printable; otherwise, it returns the number of column positions the character occupies.
EXAMPLES
This code fragment reads text from standard input and breaks lines that are more than 20 column posi-tions positions
tions wide, similar to the fold(1) utility:
wint_t ch;
int column, w;
column = 0;
while ((ch = getwchar()) != WEOF) {
w = wcwidth(ch);
if (w > 0 && column + w >= 20) {
putwchar(L'\n');
column = 0;
}
putwchar(ch);
if (ch == L'\n')
column = 0;
else if (w > 0)
column += w;
}
SEE ALSO
iswprint(3), wcswidth(3), xlocale(3)
STANDARDS
The wcwidth() function conforms to IEEE Std 1003.1-2001 (``POSIX.1'').
BSD August 17, 2004 BSD
|