68 lines
1.1 KiB
C
68 lines
1.1 KiB
C
|
/* i4key.c (c)Copyright Sequiter Software Inc., 1990-1994. All rights reserved. */
|
||
|
|
||
|
#include "d4all.h"
|
||
|
#ifndef S4UNIX
|
||
|
#ifdef __TURBOC__
|
||
|
#pragma hdrstop
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifndef S4INDEX_OFF
|
||
|
|
||
|
char S4PTR *S4FUNCTION t4key( TAG4 S4PTR *t4 )
|
||
|
{
|
||
|
B4BLOCK *b4 ;
|
||
|
|
||
|
#ifdef S4VBASIC
|
||
|
if ( c4parm_check( t4->code_base, 1, "t4key():" ) ) return 0 ;
|
||
|
#endif
|
||
|
|
||
|
#ifdef S4DEBUG
|
||
|
if ( t4 == 0 )
|
||
|
e4severe( e4parm, E4_T4KEY ) ;
|
||
|
#endif
|
||
|
|
||
|
if ( t4->code_base->error_code < 0 )
|
||
|
return 0 ;
|
||
|
|
||
|
b4 = (B4BLOCK *)(t4->blocks.last_node) ;
|
||
|
|
||
|
if ( b4 == 0 )
|
||
|
return 0 ;
|
||
|
|
||
|
#ifdef S4FOX
|
||
|
if ( b4->key_on >= b4->header.n_keys ) /* eof */
|
||
|
#else
|
||
|
if ( b4->key_on >= b4->n_keys ) /* eof */
|
||
|
#endif
|
||
|
return 0 ;
|
||
|
|
||
|
return (char *)b4key_key( b4, b4->key_on ) ;
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
#ifdef S4VB_DOS
|
||
|
|
||
|
char * t4key_v( TAG4 *t4 )
|
||
|
{
|
||
|
int len ;
|
||
|
char *key ;
|
||
|
|
||
|
#ifdef S4VBASIC
|
||
|
if ( c4parm_check( t4->code_base, 1, "t4key():" ) ) return 0 ;
|
||
|
#endif
|
||
|
|
||
|
StringRelease( basic_desc );
|
||
|
|
||
|
if( ! (key = t4key(t4)) )
|
||
|
return basic_desc ;
|
||
|
|
||
|
StringAssign( key, expr4key_len(t4->expr), basic_desc, 0 );
|
||
|
|
||
|
return basic_desc ;
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif
|