Some national languages contain characters which are not sorted in the correct
alphabetical order by a sort program or database system. With the system function
SORTKEY
you can convert
such "incorrectly sorted" characters into other characters that are
"correctly sorted" alphabetically.
When you use the SORTKEY
function in a Natural program, the user exit
NATUSKnn
will be invoked -
nn being the current language code (that is, the current
value of the system variable *LANGUAGE
).
You can write a NATUSKnn
user exit in the C
programming language using the CALL
interface. The character-string specified
with SORTKEY
will be passed to the user exit. The user exit has to be
programmed so that it converts "incorrectly sorted" characters in this string
into corresponding "correctly sorted" characters. The converted character
string is then used in the Natural program for further processing.
Note:
A conversion table is not supplied.
NATUSKnn
is called using the CALL
interface. The parameters of the C function have the following values:
Parameter | Contents |
---|---|
1 | The number of arguments. |
2 | The array of pointers to the operands. |
3 | The array of field information for each operand. |
If you use the Natural system function #OP1=SORTKEY(#OP2)
, the source
operand is in the arrays at index 0 and the target operand (#OP1
) is in the
arrays at index 1.
A sample user exit, natusk01.c, is provided in source form: it applies to English and converts all English lower-case letters in the character string to upper-case letters. The sample is to be found in <install-dir>/natural/samples/sysexuex, where you can also find the other user exits.
The source code of the example contains all comments which are needed to write a specific
user exit for SORTKEY
.
For linkage and loading conventions, refer to the CALL
statement.