Provided by: libgetdata-dev_0.7.3-6_i386 bug


       gd_alter_spec, gd_malter_spec — modify a field in a dirfile


       #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);


       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

       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.


       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:

               The specified dirfile was opened read-only.

               The library was unable to allocate memory.

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

               The supplied dirfile was invalid.

               A syntax error was encountered in line.

               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.

               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

               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.

               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.

               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).


       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)