Provided by: libgetdata-doc_0.10.0-6build3_all bug

NAME

       gd_alter_spec, gd_malter_spec — modify a field in a Dirfile

SYNOPSIS

       #include <getdata.h>

       int gd_alter_spec(DIRFILE *dirfile, const char *line, int recode);

       int gd_malter_spec(DIRFILE *dirfile, const char *line, const char *parent, int recode);

DESCRIPTION

       The  gd_alter_spec() function modifies the field described by the field specification line in line to the
       dirfile specified by  dirfile.   The  gd_malter_spec()  function  behaves  similarly,  but  modifies  the
       metafield under the field indicated by the field code parent.  Field specification lines are described in
       detail in dirfile-format(5).

       The name of the field to be modified,  which  must  already  exist,  will  be  obtained  from  the  field
       specification  line.   When adding a metafield, line should only contain a field specification, and not a
       /META directive.

       If the modified field is of type RAW and the recode argument is non-zero, the binary file associated with
       the  field  will  be converted for changes in data type and samples-per-frame.  In this case, the field's
       I/O pointer will be reset to the beginning-of-frame.  If recode is zero, no binary file  conversion  will
       take place.

       If the modified field is of type LINTERP and the recode argument is non-zero, the look-up table file will
       be moved if line specifies a different path, overwriting an existing  file  with  the  new  pathname,  if
       present.   If the field specified by field_code is of type other than RAW or LINTERP, the recode argument
       is ignored.

       Passing these functions a directive line instead of a field specification line will result  in  a  syntax
       error.   These  functions  never  call  the  registered parser callback function, even if line contains a
       syntax error.

RETURN VALUE

       On success, gd_alter_spec() and gd_malter_spec() return zero.  On error,  it  returns  a  negative-valued
       error code.  Possible error codes are:

       GD_E_ACCMODE
               The specified dirfile was opened read-only.

       GD_E_ALLOC
               The library was unable to allocate memory.

       GD_E_BAD_CODE
               The field specified in line was not found, or the parent field code was not found.

       GD_E_BAD_DIRFILE
               The supplied dirfile was invalid.

       GD_E_FORMAT
               A syntax error was encountered in line.

       GD_E_IO An  I/O error occurred while translating the binary file associated with a modified RAW field, or
               an I/O error occurred while attempting to rename a LINTERP table file.

       GD_E_LINE_TOO_LONG
               The supplied line was longer than the parser was able to deal with.  Line lengths are limited  by
               the storage size of size_t.

       GD_E_PROTECTED
               The  metadata  of  the fragment was protected from change.  Or, a request to translate the binary
               file associated with a RAW field was attempted, but the data of the fragment was protected.

       GD_E_UNKNOWN_ENCODING
               The encoding scheme of the indicated format specification fragment is not known to  the  library.
               As  a  result,  the library was unable to translate the binary file be associated with a modified
               RAW field.

       GD_E_UNSUPPORTED
               The encoding scheme of the indicated format specification fragment does not  support  translating
               the empty binary file associated with a modified RAW field.

       The  error  code is also stored in the DIRFILE object and may be retrieved after this function returns by
       calling  gd_error(3).   A  descriptive  error  string  for  the  error  may  be   obtained   by   calling
       gd_error_string(3).

HISTORY

       The functions dirfile_alter_spec() and dirfile_malter_spec() appeared in GetData-0.5.0.

       In GetData-0.7.0, these functions were renamed to gd_alter_spec() and gd_malter_spec.()

       In GetData-0.10.0, the error return from these functions changed from -1 to a negative-valued error code.

SEE ALSO

       Any  of  the  gd_alter_<entry-type>  functions  (e.g.,  gd_alter_bit(3)),  gd_alter_spec(3), gd_error(3),
       gd_error_string(3), gd_metaflush(3), gd_open(3), dirfile-format(5)