Index of Functions: A B C D E F G H I J K L M N O P Q R S T U V W X
Index Page copy_c
Table of contents
Procedure Abstract Required_Reading Keywords Brief_I/O Detailed_Input | Detailed_Output Parameters Exceptions Files Particulars Examples | Restrictions Literature_References Author_and_Institution Version Index_Entries
#### Procedure
       copy_c ( Copy a SPICE cell )

       void copy_c (  SpiceCell   * cell,
                      SpiceCell   * copy  )
#### Abstract
       Copy the contents of a SpiceCell of any data type to another
       cell of the same type.
#### Required_Reading
       CELLS
#### Keywords
       CELLS
#### Brief_I/O
       VARIABLE  I/O  DESCRIPTION
       --------  ---  --------------------------------------------------
       cell       I   Cell to be copied.
       copy       O   New cell.
#### Detailed_Input
       cell        is a SPICE cell of character, double precision, or integer data
                   type.

                   `cell' must be declared as a character, double precision or
                   integer SpiceCell.

                   CSPICE provides the following macros, which declare and
                   initialize the cell

                      SPICECHAR_CELL          ( cell, CELLSZ, CELLMLEN );
                      SPICEDOUBLE_CELL        ( cell, CELLSZ );
                      SPICEINT_CELL           ( cell, CELLSZ );

                   where CELLSZ is the maximum capacity of `cell' and CELLMLEN is
                   the maximum length of any member in the character cell.
#### Detailed_Output
       copy        is a SPICE cell which contains the same elements as the input
                   cell, in the same order.

                   `copy' must be declared as a SpiceCell of the same data type
                   as `cell'.

                   CSPICE provides the following macros, which declare and
                   initialize the cell

                      SPICECHAR_CELL          ( copy, COPYSZ, COPYMLEN );
                      SPICEDOUBLE_CELL        ( copy, COPYSZ );
                      SPICEINT_CELL           ( copy, COPYSZ );

                   where COPYSZ is the maximum capacity of `copy' and COPYMLEN is
                   the maximum length of any member in the character cell.
#### Parameters
       None.
#### Exceptions
       1)  If the output cell in not large enough to hold the elements of
           the input cell, the error SPICE(CELLTOOSMALL) is signaled by a
           routine in the call tree of this routine.

       2)  If the `cell' and `copy' cell arguments are of type SpiceChar and
           the length of the elements of the output cell is less than the
           length of the elements of the input cell, the error
           SPICE(INSUFFLEN) is signaled.

       3)  If the `cell' and `copy' cell arguments do not have identical data
           types, the error SPICE(TYPEMISMATCH) is signaled.

       4)  If any of the `cell' or `copy' cell arguments does not have a
           recognized data type, the error SPICE(NOTSUPPORTED) is signaled.

       5)  If the cell arguments are of type SpiceChar and the string length
           associated with any of them is non-positive or too short to be
           usable when constructing the equivalent SPICE character cells
           required by the wrapped SPICELIB routine, an error is signaled by
           a routine in the call tree of this routine.
#### Files
       None.
#### Particulars
       This routine is used primarily to manipulate working cells, since
       many routines that use cells (binary set routines, for instance) do
       not allow cells to be combined or manipulated in place.
#### Examples
       In the following example, copy_c is used to copy the result
       of the union of two character CSICE sets from a temporary
       working set back into the one of the original set.

          #include "SpiceUsr.h"
               .
               .
               .
          /.
          Declare the cell names with string length LNSIZE and maximum
          number of strings SIZE.
          ./
          SPICECHAR_CELL ( bodies,  SIZE, LNSIZE );
          SPICECHAR_CELL ( planets, SIZE, LNSIZE );
          SPICECHAR_CELL ( temp,    SIZE, LNSIZE );
               .
               .
               .
          union_c ( &bodies, &planets, &temp );
          copy_c  ( &temp,   &bodies         );

       If the size of the temporary cell is greater than the size
       of the original set, the function failed_c should be checked to be
       sure that no overflow occurred. If bodies is at least as
       large as temp, no such check is necessary.
#### Restrictions
       None.
#### Literature_References
       None.
#### Author_and_Institution
       N.J. Bachman        (JPL)
       C.A. Curzon         (JPL)
       J. Diaz del Rio     (ODC Space)
       W.L. Taber          (JPL)
       I.M. Underwood      (JPL)
#### Version
       -CSPICE Version 1.0.1, 27-AUG-2021 (JDR)

           Edited the header to comply with NAIF standard.

           Extended description of arguments "cell" and "copy" to include
           type and preferred declaration method.

           Added entry #4 and #5 in -Exceptions section.

       -CSPICE Version 1.0.0, 08-AUG-2002 (NJB) (CAC) (WLT) (IMU)
#### Index_Entries
       copy a character cell
#### Link to routine copy_c source file copy_c.c

    Fri Dec 31 18:41:03 2021