which included commits to RCS files with non-trunk default branches. git-svn-id: svn://10.65.10.50/trunk@976 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			96 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /* d4field.c   (c)Copyright Sequiter Software Inc., 1990-1994.  All rights reserved. */
 | |
| 
 | |
| #include "d4all.h"
 | |
| #ifndef S4UNIX
 | |
| #ifdef __TURBOC__
 | |
| #pragma hdrstop
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| FIELD4 *S4FUNCTION d4field( DATA4 *data, char *field_name )
 | |
| {
 | |
|   int i ;
 | |
| 
 | |
| #ifdef S4VBASIC
 | |
|   if ( c4parm_check( data, 2, E4_D4FIELD ) )
 | |
|     return 0 ;
 | |
| #endif
 | |
| 
 | |
|   if ( data == 0 )
 | |
| #ifdef S4DEBUG
 | |
|     e4severe( e4parm, E4_D4FIELD ) ;
 | |
| #else
 | |
|   return 0 ;
 | |
| #endif
 | |
| 
 | |
|   i =  d4field_number( data, field_name ) - 1 ;
 | |
|   if ( i < 0 )
 | |
|     return 0 ;
 | |
| 
 | |
|   return data->fields + i ;
 | |
| }
 | |
| 
 | |
| FIELD4 *S4FUNCTION d4field_j( DATA4 *data, int j_field )
 | |
| {
 | |
| #ifdef S4VBASIC
 | |
|   if ( c4parm_check( data, 2, E4_D4FIELDJ ) )
 | |
|     return 0 ;
 | |
| #endif
 | |
| 
 | |
|   if ( data == 0 || j_field <= 0 )
 | |
| #ifdef S4DEBUG
 | |
|     e4severe( e4parm, E4_D4FIELDJ ) ;
 | |
| #else
 | |
|   return (FIELD4 *) 0 ;
 | |
| #endif
 | |
| 
 | |
| #ifdef S4DEBUG
 | |
|   if ( data->fields == 0 || j_field > data->n_fields )
 | |
|     e4severe( e4info, E4_D4FIELDJ ) ;
 | |
| #endif
 | |
|   return data->fields + j_field - 1 ;
 | |
| }
 | |
| 
 | |
| int S4FUNCTION d4field_number( DATA4 *data, char *field_name )
 | |
| {
 | |
|   char buf[256] ;
 | |
|   int i ;
 | |
| 
 | |
|   if ( data == 0 )
 | |
| #ifdef S4DEBUG
 | |
|     e4severe( e4parm, E4_D4FIELD_NUM ) ;
 | |
| #else
 | |
|   return 0 ;
 | |
| #endif
 | |
| 
 | |
|   if ( field_name )
 | |
|   {
 | |
|     u4ncpy( buf, field_name, sizeof( buf ) ) ;
 | |
|     c4trim_n( buf, sizeof( buf ) ) ;
 | |
|     c4upper( buf ) ;
 | |
| 
 | |
|     for ( i = 0 ; i < data->n_fields ; i++ )
 | |
|       if ( !strcmp( buf, data->fields[i].name ) )
 | |
|         return i + 1 ;
 | |
|   }
 | |
| 
 | |
|   if ( data->code_base->field_name_error )
 | |
|     e4( data->code_base, e4field_name, field_name ) ;
 | |
| 
 | |
|   return -1 ;
 | |
| }
 | |
| 
 | |
| #ifdef S4VB_DOS
 | |
| 
 | |
| FIELD4 *d4field_v( DATA4 *d4, char *fld_name )
 | |
| {
 | |
|   return d4field( d4, c4str(fld_name) ) ;
 | |
| }
 | |
| 
 | |
| int d4fieldNumber( DATA4 *d4, char *fld_name )
 | |
| {
 | |
|   return d4field_number( d4, c4str(fld_name) ) ;
 | |
| }
 | |
| 
 | |
| #endif
 |