OUTATT ( attrib, bufsiz, owner, ivals, rvals, slens, chars, ifail )
===================================================================
Output an attribute.
Can be called from the GO.
Receives:
KI_tag_attribute *attrib --- attribute
<KI_int_nitems> *bufsiz --- amount of space available in
--- chars
Returns:
KI_tag_entity *owner --- entity to which attribute is
--- attached
<KI_tag_list_int> *ivals --- list of integer values
<KI_tag_list_dbl> *rvals --- list of real values
<KI_tag_list_int> *slens --- list of string lengths
KI_chr_string chars[bufsiz] --- array of data for string fields
KI_cod_error *ifail --- error code
Description:
The owner and contents of an attribute are output. To find the type,
and hence any other information dependent only on the type, use ENDFAT.
The integer fields are returned in the integer list ivals.
The real values for the fields of types real, axis, vector, coordinate and
direction are returned in rvals, in the order of the fields (which may be
obtained by calling OUATDF with the type of the attribute, obtained from
ENDFAT). Thus the real values held in the first field of any of the above
types appear first, followed by the real values held in the next field of
any of these types. Each real field yields one real value, each axis six and
each field of type coordinate, vector or direction three.
The string fields are returned, concatenated, in the array 'chars'; the
lengths of the strings are returned in the list 'slens'. Thus if we denote
the first entry in 'slens' by 'slens\1' and so on, the first string field is
given by the first 'slens\1' values in 'chars', the second by the next
'slens\2' and so on. OUTATT does not attempt to write more than 'bufsiz'
characters to 'chars', nor does it fail on account of there being more than
this to write; if there is too little space, it returns 'ifail' as zero so
that it can return the lengths of the strings in 'slens'. As many string
fields as fit into less than 'bufsiz' are also returned in 'chars'. Thus
the values in 'slens' should be compared with 'bufsiz' after a call to
OUTATT; if the sum of the lengths of the string fields up to the last one
required is greater than 'bufsiz', then a second call to the function, using
more space (how much more being computed from the values in 'slens') in
'chars', will return all the required data.