UniCreateTransformObject
UniCreateTransformObject creates a string transform object.
Syntax
UniCreateTransformObject (locale_object, xtype, xform_object)
Parameters
- locale_object (const LocaleObject)
- A locale object created by UniCreateLocaleObject or NULL.
- xtype (const UniChar*)
- A UniChar string identifying the transform type.
- xform_object (XformObject*)
- An address that will receive a pointer to an XformObject upon successful completion of UniCreateTransformObject.
Returns
Return value (int) - returns
- ULS_SUCCESS
- No errors; the xform_object argument points to a valid transformation object.
- ULS_UNSUPPORTED
- The transformation name type specified by the xtype argument is not supported for locale_object.
Remarks
UniCreateTransformObject obtains a transformation object for a transformation type as defined in the locale indicated by the locale_object argument. The function returns a transformation object that can be used as an argument in UniTransformStr.
The following transformation types are defined in all locales:
- lower
- Transform to lowercase characters. A character that does not have a lowercase form is returned as itself.
- upper
- Transform to uppercase characters. A character that does not have an uppercase form is returned as itself.
- compose
- Transform to fully composed form for combined characters.
- decompose
- Transform to a string of decomposed characters where multiple characters are used to represent base and diacritics.
- hiragana
- Transform so that Japanese phonetic characters are in hiragana
- katakana
- Transform so that Japanese phonetic characters are in full size katakana
- kana
- Transform so that Japanese phonetic characters are in half size katakana
In addition to the above transformation-type names, other transformation-type names in the locale (including user-defined transformation-type names) may be passed to UniCreateTransformObject through the xtype argument. To obtain a successful return, the transformation-type name must be defined in locale_object.
When UniCreateTransformObject completes without errors, the xform_object argument value specifies a valid pointer to a transformation object. The transformation object should be used in all subsequent calls to UniTransformStr. If the function result is other than ULS_SUCCESS, the contents of the area pointed to by xform_object are undefined.
Example
This example shows how to create and use a transform object.
#include <stdio.h> #include <unidef.h> int main(void) { LocaleObject locale_object = NULL; XformObject xform_object = NULL; int rc = ULS_SUCCESS; int in_unistr_elem = 0; int out_unistr_elem = 10; UniChar *pin_unistr = (UniChar *)L"os2"; UniChar out_unistr[10]; /*****************************************************************/ /* Assumes LANG environment variable set to a valid locale name, */ /* such as fr_FR */ /*****************************************************************/ rc = UniCreateLocaleObject(UNI_UCS_STRING_POINTER, (UniChar *)L"", &locale_object); if (rc != ULS_SUCCESS) { printf("UniCreateLocaleObject error: return code = %u\n", rc); return 1; } /* Create an upper case transform object */ rc = UniCreateTransformObject(locale_object, (UniChar *)L"upper", &xform_object); if (rc != ULS_SUCCESS) { printf("UniCreateTransformObject error: return code = %u\n", rc); return 1; } /* Calculate the number of elements to transform */ in_unistr_elem = UniStrlen (pin_unistr) + 1; /* Make call to transform input string to uppercase */ rc = UniTransformStr(xform_object, pin_unistr, &in_unistr_elem, out_unistr, &out_unistr_elem); if (rc != ULS_SUCCESS) { printf("UniTransformStr error: return code = %u\n", rc); return 1; } return ULS_SUCCESS; }
Format
#include <unidef.h> int UniCreateTransformObject ( const LocaleObject locale_object, /* I - Locale object */ const UniChar *xtype, /* I - Transform type */ XformObject *xform_object /* O - Transform object */ )