noble (3) gd_rename.3.gz

Provided by: libgetdata-doc_0.11.0-13_all bug

NAME

       gd_rename — change the name of a Dirfile field or alias

SYNOPSIS

       #include <getdata.h>

       int gd_rename(DIRFILE *dirfile, const char *old_code, const char *new_name, unsigned int flags);

DESCRIPTION

       The  gd_rename()  function changes the name of the field or alias specified by old_code, which should not
       contain a representation suffix, defined in the dirfile specified by dirfile to  new_name.   If  the  new
       name is the same as the old name, this function does nothing and returns no error.

       When  renaming  a  metafield,  the  metafield should be specified in old_code by its full (slashed) field
       code, while new_name should only contain the new name (without slash).

       If old_code specifies a top-level field with meta subfields, the subfields  will  be  renamed,  too.   By
       default,  this  function  also  updates  ALIAS entries whose target contains old_code to point to the new
       field.  Similarly, specifying the GD_REN_UPDB flag will cause this function to  modify  any  field  entry
       containing  old_code.   As  a  result,  this  function  may  cause  more than one metadata fragment to be
       modified.

       The flags parameter should be zero or more of the following flags, bitwise or'd together:

       GD_REN_DANGLE
               Don't update ALIAS entries, instead turning them into dangling aliases.

       GD_REN_DATA
               if old_code specifies a RAW field, the binary file associated with the field will be  renamed  as
               well.   Without this flag, no changes are made to the binary file.  In this case, the field's I/O
               pointer will be reset to the beginning-of-frame.  If field_code specifies a field of  type  other
               than RAW, this flag is ignored.

       GD_REN_FORCE
               When  updating  field  metadata (either the target of an alias, or else when specified along with
               GD_REN_UPDB), skip updating field codes  which  would  be  invalid  (due  to  /INCLUDE  affixes).
               Without  this  flag,  such  invalid  field  codes  causes  this  function  to fail with the error
               GD_E_BAD_CODE.

       GD_REN_UPDB
               Rename the field in any other field specifications which use this field as an input (either as  a
               vector  input field to a derived field, or else as a scalar field parameter).  Without this flag,
               fields which depend on the old name of this field are left unmodified.

RETURN VALUE

       On success, gd_rename() returns zero.   On error, a negative-valued error  code  is  returned.   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  by old_code was not found.  Or else the resultant metadata update tried to
               change a field code into something prohibited by a fragment's affixes.

       GD_E_BAD_DIRFILE
               The supplied dirfile was invalid.

       GD_E_BAD_FIELD_TYPE
               An attempt was made to rename the immutable INDEX field.

       GD_E_DUPLICATE
               The new name specified is already in use by another entry.

       GD_E_IO An I/O error occurred while attempting to rename the binary file.

       GD_E_PROTECTED
               The metadata of the format specification fragment containing the renamed entry, or another  entry
               affected  by  this  change,  was  protected  from  change, or the binary data of the fragment was
               protected from change and a binary file move was requested.

       GD_E_UNKNOWN_ENCODING
               The encoding scheme of the specified field could not be  determined  or  was  not  understood  by
               GetData.

       GD_E_UNSUPPORTED
               The encoding scheme of the field does not support binary file renaming.

       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 dirfile_rename() function appeared in GetData-0.5.0.  It had no flags argument.  In its place was int
       move_data.  Passing a non-zero value for this parameter has the same effect as the GD_REN_DATA flag  does
       now.

       In GetData-0.7.0, this function was renamed to gd_rename().

       In  GetData-0.8.0,  the  move_data  parameter  was  replaced  with  the  flags parameter.  The only flags
       available were GD_REN_DATA and GD_REN_UBDB.

       The flags GD_REN_DANGLE and GD_REN_FORCE flags appeared in GetData-0.9.0.

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

SEE ALSO

       gd_error(3), gd_error_string(3), gd_metaflush(3), gd_open(3), dirfile(5), dirfile-format(5)