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
		
			
				
	
	
		
			97 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/* i4info.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 *S4FUNCTION t4alias( TAG4 *tag )
 | 
						|
{
 | 
						|
  return tag->alias ;
 | 
						|
}
 | 
						|
 | 
						|
int S4FUNCTION t4is_descending( TAG4 *tag )
 | 
						|
{
 | 
						|
#ifdef S4NDX
 | 
						|
  return 0 ;
 | 
						|
#endif
 | 
						|
#ifdef S4FOX
 | 
						|
  if ( tag->header.descending )
 | 
						|
    return r4descending ;
 | 
						|
  else
 | 
						|
    return 0 ;
 | 
						|
#endif
 | 
						|
#ifdef S4CLIPPER
 | 
						|
  if ( tag->header.descending )
 | 
						|
    return r4descending ;
 | 
						|
  else
 | 
						|
    return 0 ;
 | 
						|
#endif
 | 
						|
#ifdef S4MDX
 | 
						|
  if ( tag->header.type_code & 8 )
 | 
						|
    return r4descending ;
 | 
						|
  else
 | 
						|
    return 0 ;
 | 
						|
#endif
 | 
						|
}
 | 
						|
 | 
						|
int S4FUNCTION t4unique( TAG4 *tag )
 | 
						|
{
 | 
						|
#ifdef S4FOX
 | 
						|
  if ( tag->header.type_code & 0x01 )
 | 
						|
    return tag->unique_error ;
 | 
						|
#else
 | 
						|
  if ( tag->header.unique )
 | 
						|
    return tag->unique_error ;
 | 
						|
#endif
 | 
						|
  return 0 ;
 | 
						|
}
 | 
						|
 | 
						|
TAG4INFO *S4FUNCTION i4tag_info( INDEX4 *index )
 | 
						|
{
 | 
						|
  TAG4INFO *tag_info ;
 | 
						|
  TAG4 *tag_on ;
 | 
						|
  int num_tags, i ;
 | 
						|
 | 
						|
#ifdef S4DEBUG
 | 
						|
  if ( index == 0 )
 | 
						|
    e4severe( e4parm, E4_I4TAG_INFO ) ;
 | 
						|
#endif
 | 
						|
 | 
						|
  if ( index->code_base->error_code < 0 )
 | 
						|
    return 0 ;
 | 
						|
 | 
						|
  num_tags = 0 ;
 | 
						|
  for( tag_on = 0 ;; )
 | 
						|
  {
 | 
						|
    tag_on = (TAG4 *)l4next( &index->tags, tag_on ) ;
 | 
						|
    if ( tag_on == 0 )
 | 
						|
      break ;
 | 
						|
    num_tags++ ;
 | 
						|
  }
 | 
						|
 | 
						|
  if ( index->code_base->error_code < 0 )
 | 
						|
    return 0 ;
 | 
						|
  tag_info = (TAG4INFO *)u4alloc_free( index->code_base, ( (long)num_tags + 1L ) * sizeof( TAG4INFO ) ) ;
 | 
						|
  if ( tag_info == 0 )
 | 
						|
    return 0 ;
 | 
						|
 | 
						|
  for( tag_on = 0, i = 0 ;; i++ )
 | 
						|
  {
 | 
						|
    tag_on = (TAG4 *)l4next( &index->tags, tag_on ) ;
 | 
						|
    if ( tag_on == 0 )
 | 
						|
      return ( tag_info ) ;
 | 
						|
    tag_info[i].name = t4alias( tag_on ) ;
 | 
						|
    tag_info[i].expression = expr4source( tag_on->expr ) ;
 | 
						|
    tag_info[i].filter = expr4source( tag_on->filter ) ;
 | 
						|
    tag_info[i].unique = t4unique( tag_on ) ;
 | 
						|
    tag_info[i].descending = t4is_descending( tag_on ) ;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
#endif
 |