Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ wcsxfrm(3) — OSF/1 3.0 αXP

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

setlocale(3)

string(3)

/strxfrm(3)

wcscmp(3)

wcscoll(3)

wcsxfrm(3)  —  Subroutines

NAME

wcsxfrm − Transforms wide-character strings for collation in the current locale

LIBRARY

Standard C Library (libc.a)

SYNOPSIS

#include <wchar.h> size_t wcsxfrm(
wchar_t ∗ws1,
const wchar_t ∗ws2,
size_t n);

PARAMETERS

ws1Contains a pointer to the destination wide-character string. 

ws2 Contains a pointer to the source wide-character string. 

nSpecifies the maximum number of wide-character codes to place into the array specified by ws1. 

DESCRIPTION

The wcsxfrm() function is used to transform the wide-character string specified by the ws2 parameter into a string of wide-character codes based on the collation values of the wide characters in the current locale setting as specified by the LC_COLLATE category. No more than the number of wide characters specified by the n parameter are copied into the array specified by the ws1 parameter. This transformation is such that when two such transformed wide-character strings are obtained and the transformed strings are compared using the wcscmp() function, the result obtained would be same as would be obtained by a direct call to the wcscoll() function on the two original wide-character strings. 

When operating on overlapping strings, the behavior of this function is unreliable. 

NOTES

If you are doing multiple comparisons based on the current locale’s collation values using the same set of text strings, the wcsxfrm() transformation function in conjunction with the wcscmp() function may be more efficient than using the wcscoll() collation function because the string is transformed based on the locale tables only once.  However, the transformation function must convert all characters in the string for each level of a multi-level collation. In comparison, the collation function stops comparing characters at the first inequality. These efficiency tradeoffs make the most efficient method for a specific application dependent on the number of repeated comparisons of strings within the set, the number of collation levels for the current locale, and the values of the strings within the set. 

RETURN VALUES

If the ws1 parameter is a wide-character null pointer, the wcsxfrm() function returns the number of wide-character elements (not including the terminating null wide character) required to store the transformed wide-character string. If the count specified by the n parameter is sufficient to hold the transformed string in the ws1 parameter (including the terminating null wide character) the return value is set to the actual number of wide-character elements placed in the ws1 parameter, not including the terminating null wide character. If the return value is equal to or greater than the value specified by the n parameter, the contents of the array pointed to by the ws1 parameter are indeterminate.  This occurs whenever the value specified by the n parameter is too small to hold the entire transformed string. 

ERRORS

If the following condition occurs, the wcsxfrm() function sets errno to the corresponding value. 

[EINVAL]The ws2 parameter contains wide-character codes outside the domain of the collating sequence defined by the current locale. 

[ENOMEM]There was insufficient memory available to allocate temporary storage for this operation. 

RELATED INFORMATION

Functions: setlocale(3), string(3)/strxfrm(3), wcscmp(3), wcscoll(3). 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026