51 lines
1.2 KiB
C
51 lines
1.2 KiB
C
|
/* f4ass_f.c (c)Copyright Sequiter Software Inc., 1990-1994. All rights reserved. */
|
||
|
|
||
|
#include "d4all.h"
|
||
|
#ifndef S4UNIX
|
||
|
#ifdef __TURBOC__
|
||
|
#pragma hdrstop
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifndef S4OFF_WRITE
|
||
|
void S4FUNCTION f4assign_field( FIELD4 *field_to, FIELD4 *field_from )
|
||
|
{
|
||
|
#ifdef S4DEBUG
|
||
|
if ( field_to == 0 || field_from == 0 )
|
||
|
e4severe( e4parm, E4_F4ASSIGN_FLD ) ;
|
||
|
#endif
|
||
|
|
||
|
if ( field_to->data->code_base->error_code < 0 )
|
||
|
return ;
|
||
|
|
||
|
switch( field_to->type )
|
||
|
{
|
||
|
case 'C':
|
||
|
f4assign_n( field_to, f4ptr( field_from ), field_from->len ) ;
|
||
|
break ;
|
||
|
case 'N':
|
||
|
case 'F':
|
||
|
if( field_from->len == field_to->len && field_from->dec == field_to->dec &&
|
||
|
(field_from->type == 'N' || field_from->type == 'F') )
|
||
|
memcpy( f4assign_ptr( field_to ), f4ptr( field_from ), field_to->len ) ;
|
||
|
else
|
||
|
f4assign_double( field_to, f4double( field_from ) ) ;
|
||
|
break ;
|
||
|
case 'D':
|
||
|
if( field_from->type == 'D' )
|
||
|
memcpy( f4assign_ptr( field_to ), f4ptr( field_from ), field_to->len ) ;
|
||
|
break ;
|
||
|
case 'L':
|
||
|
if( field_from->type == 'L' )
|
||
|
*f4assign_ptr( field_to ) = *f4ptr( field_from ) ;
|
||
|
break ;
|
||
|
default:
|
||
|
#ifdef S4DEBUG
|
||
|
e4severe( e4info, E4_INFO_IFT ) ;
|
||
|
#endif
|
||
|
break ;
|
||
|
}
|
||
|
}
|
||
|
#endif
|
||
|
|