Provided by: libgetdata-dev_0.7.3-6ubuntu1_amd64 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.  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  entry->table  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, -1 is returned
       and the dirfile error is set to a non-zero error value.  Possible error values 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_LINE_TOO_LONG
               The supplied line was longer than the parser was able to  deal  with.   Lines  are
               limited  by  the  storage size of ssize_t.  On 32-bit systems, this limits line to
               2**31 bytes.  The limit is larger on 64-bit systems.

       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_RAW_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_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 dirfile error may be retrieved by calling gd_error(3).  A descriptive error string for
       the last error encountered can be obtained from a call to gd_error_string(3).

SEE ALSO

       gd_alter_bit(3),      gd_alter_const(3),      gd_alter_entry(3),       gd_alter_lincom(3),
       gd_alter_linterp(3),     gd_alter_multiply(3),     gd_alter_phase(3),     gd_alter_raw(3),
       gd_alter_spec(3), gd_metaflush(3), gd_open(3), gd_error(3),  gd_error_string(3),  dirfile-
       format(5)