gd_alter_spec(3)

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 function modifies the field described by the field specification line in to the dirfile specified by The function behaves similarly, but modifies the metafield under the field indicated by the field code 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, should only contain a field specification, and not a /META directive. If the modified field is of type RAW and the 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 is zero, no binary file conversion will take place. If the modified field is of type LINTERP and the argument is non-zero, the look-up table file will be moved if specifies a different path, overwriting an existing file with the new pathname, if present. If the field specified by is of type other than RAW or LINTERP, the 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 contains a syntax error.

RETURN VALUE
On success, and return zero. On error, it returns a negative-valued error code. Possible error codes are: The specified dirfile was opened read-only. The library was unable to allocate memory. The field specified in was not found, or the field code was not found. The supplied dirfile was invalid. A syntax error was encountered in 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 supplied was longer than the parser was able to deal with. Line lengths are limited by the storage size of size_t. 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. 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 error code is also stored in the DIRFILE object and may be retrieved after this function returns by calling A descriptive error string for the error may be obtained by calling

HISTORY
The functions and appeared in GetData-0.5.0. In GetData-0.7.0, these functions were renamed to and 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., dirfile-format(5)