Man Linux: Main Page and Category List


       atExpandAttrs, atExpand - attribute expansion


       #include <atfs.h>
       #include <atfstk.h>

       int  atExpandAttrs (Af_key *aso, char *buf, size_t bufSize, FILE *dest,
       size_t destSize, int mode);

       int atExpand;


       atExpandAttrs scans the char buffer buf to the extent  of  bufSize  for
       strings   of   the  form  $__attributeName  optionally  followed  by  a
       delimiting (second) dollar sign ($). If such a  string  is  found,  the
       buffer  contents  up  to  the character preceding the first dollar sign
       will be sent to the destination output dest. If an attribute with  name
       attributeName  is  set  for the current attributed software object aso,
       the citation-string will be substituted by the value of that  attribute
       and  appended  to  the output.  Output of buf contents resumes with the
       first  character  after  the  whitespace  character  or   dollar   sign
       delimiting attributeName.

       Despite  the  type  of  the  dest argument (pointer to file structure),
       atExpandAttrs may be caused to copy it’s  output  to  a  string  buffer
       rather  than  an open file. In this case, the constant AT_EXPAND_STRING
       must be given as mode argument and bufSize must be set to indicate  the
       length  of  the  destination  buffer  dest (will be casted to character
       pointer).  If  destSize  is  to  small  to  hold  the  result   string,
       atExpandAttrs  returns  a  negative  value.  In the regular case, where
       output shall  be  written  to  a  file,  the  mode  parameter  must  be

       The  atExpand  variable  suppresses attribute expansion when set FALSE.
       The variable may be set either directly from the application program if
       indirectly  by  evaluation of the pseudo attribute citation $__xpoff in
       any buffer scanned by atExpandAttrs. Another pseudo attribute  citation
       $__xpon  cancels  the  effect  of  a  previous  $__xpoff  and  switches
       attribute citation on again. It does  not,  however,  enable  attribute
       citation if this was disabled explicitly by the application program.


       atExpandAttrs  returns  -1 on error. Additionally, the atError variable
       is set and afErrMsg holds a diagnostic message.