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


       gd_rename — change the name of a Dirfile field or alias


       #include <getdata.h>

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


       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:

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

               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.

               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.

               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.


       On  success,  gd_rename()  returns  zero.    On  error,  a  negative-valued  error code is
       returned.  Possible error codes are:

               The specified dirfile was opened read-only.

               The library was unable to allocate memory.

               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

               The supplied dirfile was invalid.

               An attempt was made to rename the immutable INDEX field.

               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.

               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

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

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


       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.


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