The Move Translated Until Character routine moves the source string, character by character, to the destination string after translating each character using the specified translation table until the stop character is encountered. LIB$MOVTUC makes the VAX MOVTUC instruction available as a callable routine. Format LIB$MOVTUC source-string ,stop-character ,translation-table ,destination-string [,fill-character]
1 – Returns
OpenVMS usage:longword_unsigned type: longword (unsigned) access: write only mechanism: by value The relative position in the source string of the character that is translated to the stop character. Zero is returned if the stop character is not found. This value is set to -1 if destination- string cannot be allocated.
2 – Arguments
source-string OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Source string to be translated and moved by LIB$MOVTUC. The source-string argument is the address of a descriptor pointing to this source string. stop-character OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Stop character that causes LIB$MOVTUC to stop translating the source string. The stop-character argument is the address of a descriptor pointing to a string. The first character of this string is used as the stop character. The length of this string is not checked. During the translation, LIB$MOVTUC accesses each character in the source string and uses it as an index into the translation table. If this translated character is the specified stop character, translation stops, and stop-character is not translated. translation-table OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Translation table used by LIB$MOVTUC. The translation-table argument is the address of a descriptor pointing to the translation table string. The translation table string is assumed to be 256 characters long. You can use any of the translation tables included in the Description section of LIB$MOVTC, or you can create your own. When using a translation table supplied by VSI, the names LIB$AB_ xxx_yyy represent the addresses of the 256-byte translation tables, and can be accessed as external (string) variables. If a particular language cannot generate descriptors for external strings, then they must be created manually. destination-string OpenVMS usage:char_string type: character string access: write only mechanism: by descriptor Destination string into which LIB$MOVTUC writes the translated source-string. The destination-string argument is the address of a descriptor pointing to this destination string. fill-character OpenVMS usage:char_string type: character string access: read only mechanism: by descriptor Character used to pad source-string to the length of destination- string. The fill-character argument is the address of a descriptor pointing to a string. The first character of this string is used as the fill character. The length of this string is not checked and fill-character is not translated. If the fill character is included, the remainder of the destination string (after the stop character) is filled with the specified fill character. If it is not included, the remainder of the destination string remains unchanged.