version 1.3.4.1, 1998/10/28 01:31:17
|
version 1.3.10.1, 1998/10/20 23:24:28
|
Line 1
|
Line 1
|
/* filter.c - routines for parsing and dealing with filters */ |
/* filter.c - routines for parsing and dealing with filters */ |
|
|
|
#include "portable.h" |
|
|
#include <stdio.h> |
#include <stdio.h> |
#include <string.h> |
#include <string.h> |
#include <sys/types.h> |
#include <sys/types.h> |
Line 388 filter_print( Filter *f )
|
Line 390 filter_print( Filter *f )
|
Filter *p; |
Filter *p; |
|
|
if ( f == NULL ) { |
if ( f == NULL ) { |
fprintf( stderr, "NULL" ); |
printf( "NULL" ); |
} |
} |
|
|
switch ( f->f_choice ) { |
switch ( f->f_choice ) { |
case LDAP_FILTER_EQUALITY: |
case LDAP_FILTER_EQUALITY: |
fprintf( stderr, "(%s=%s)", f->f_ava.ava_type, |
printf( "(%s=%s)", f->f_ava.ava_type, |
f->f_ava.ava_value.bv_val ); |
f->f_ava.ava_value.bv_val ); |
break; |
break; |
|
|
case LDAP_FILTER_GE: |
case LDAP_FILTER_GE: |
fprintf( stderr, "(%s>=%s)", f->f_ava.ava_type, |
printf( "(%s>=%s)", f->f_ava.ava_type, |
f->f_ava.ava_value.bv_val ); |
f->f_ava.ava_value.bv_val ); |
break; |
break; |
|
|
case LDAP_FILTER_LE: |
case LDAP_FILTER_LE: |
fprintf( stderr, "(%s<=%s)", f->f_ava.ava_type, |
printf( "(%s<=%s)", f->f_ava.ava_type, |
f->f_ava.ava_value.bv_val ); |
f->f_ava.ava_value.bv_val ); |
break; |
break; |
|
|
case LDAP_FILTER_APPROX: |
case LDAP_FILTER_APPROX: |
fprintf( stderr, "(%s~=%s)", f->f_ava.ava_type, |
printf( "(%s~=%s)", f->f_ava.ava_type, |
f->f_ava.ava_value.bv_val ); |
f->f_ava.ava_value.bv_val ); |
break; |
break; |
|
|
case LDAP_FILTER_SUBSTRINGS: |
case LDAP_FILTER_SUBSTRINGS: |
fprintf( stderr, "(%s=", f->f_sub_type ); |
printf( "(%s=", f->f_sub_type ); |
if ( f->f_sub_initial != NULL ) { |
if ( f->f_sub_initial != NULL ) { |
fprintf( stderr, "%s", f->f_sub_initial ); |
printf( "%s", f->f_sub_initial ); |
} |
} |
if ( f->f_sub_any != NULL ) { |
if ( f->f_sub_any != NULL ) { |
for ( i = 0; f->f_sub_any[i] != NULL; i++ ) { |
for ( i = 0; f->f_sub_any[i] != NULL; i++ ) { |
fprintf( stderr, "*%s", f->f_sub_any[i] ); |
printf( "*%s", f->f_sub_any[i] ); |
} |
} |
} |
} |
charray_free( f->f_sub_any ); |
charray_free( f->f_sub_any ); |
if ( f->f_sub_final != NULL ) { |
if ( f->f_sub_final != NULL ) { |
fprintf( stderr, "*%s", f->f_sub_final ); |
printf( "*%s", f->f_sub_final ); |
} |
} |
break; |
break; |
|
|
case LDAP_FILTER_PRESENT: |
case LDAP_FILTER_PRESENT: |
fprintf( stderr, "%s=*", f->f_type ); |
printf( "%s=*", f->f_type ); |
break; |
break; |
|
|
case LDAP_FILTER_AND: |
case LDAP_FILTER_AND: |
case LDAP_FILTER_OR: |
case LDAP_FILTER_OR: |
case LDAP_FILTER_NOT: |
case LDAP_FILTER_NOT: |
fprintf( stderr, "(%c", f->f_choice == LDAP_FILTER_AND ? '&' : |
printf( "(%c", f->f_choice == LDAP_FILTER_AND ? '&' : |
f->f_choice == LDAP_FILTER_OR ? '|' : '!' ); |
f->f_choice == LDAP_FILTER_OR ? '|' : '!' ); |
for ( p = f->f_list; p != NULL; p = p->f_next ) { |
for ( p = f->f_list; p != NULL; p = p->f_next ) { |
filter_print( p ); |
filter_print( p ); |
} |
} |
fprintf( stderr, ")" ); |
printf( ")" ); |
break; |
break; |
|
|
default: |
default: |
fprintf( stderr, "unknown type %d", f->f_choice ); |
printf( "unknown type %d", f->f_choice ); |
break; |
break; |
} |
} |
} |
} |