Doxygen Source Code Documentation
Main Page Alphabetical List Data Structures File List Data Fields Globals Search
thd_checkidc.c
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007 #include "mrilib.h"
00008 #include "thd.h"
00009
00010
00011
00012
00013
00014
00015
00016 void THD_check_idcodes( THD_sessionlist * ssl )
00017 {
00018 int iss , idd,jdd , ivv , dsnum , nd ;
00019 THD_session * sess ;
00020 THD_3dim_dataset * dset , ** dsl ;
00021
00022 ENTRY("THD_check_idcodes") ;
00023
00024
00025
00026 if( ! ISVALID_SESSIONLIST(ssl) || ssl->num_sess <= 0 ) EXRETURN ;
00027
00028
00029
00030 for( dsnum=iss=0 ; iss < ssl->num_sess ; iss++ ){
00031 sess = ssl->ssar[iss] ;
00032 for( idd=0 ; idd < sess->num_dsset ; idd++ ){
00033 for( ivv=FIRST_VIEW_TYPE ; ivv <= LAST_VIEW_TYPE ; ivv++ ){
00034 dset = sess->dsset[idd][ivv] ;
00035 if( ISVALID_DSET(dset) ) dsnum++ ;
00036 }
00037 }
00038 }
00039
00040
00041
00042 dsl = (THD_3dim_dataset **) malloc( sizeof(THD_3dim_dataset *) * dsnum ) ;
00043
00044 for( nd=iss=0 ; iss < ssl->num_sess ; iss++ ){
00045 sess = ssl->ssar[iss] ;
00046 for( idd=0 ; idd < sess->num_dsset ; idd++ ){
00047 for( ivv=FIRST_VIEW_TYPE ; ivv <= LAST_VIEW_TYPE ; ivv++ ){
00048 dset = sess->dsset[idd][ivv] ;
00049 if( ISVALID_DSET(dset) ) dsl[nd++] = dset ;
00050 }
00051 }
00052 }
00053
00054
00055
00056 for( iss=idd=0 ; idd < dsnum-1 ; idd++ ){
00057 nd = 0 ;
00058 for( jdd=idd+1 ; jdd < dsnum ; jdd++ ){
00059 if( DUPLICATE_DSETS(dsl[idd],dsl[jdd]) ){
00060 fprintf(stderr,
00061 "\n*** WARNING: Identical ID codes in %s and %s",
00062 DSET_HEADNAME(dsl[idd]) , DSET_HEADNAME(dsl[jdd]) ) ;
00063 iss++ ;
00064 }
00065 }
00066 }
00067
00068 if( iss > 0 ) fprintf(stderr,"\n") ;
00069
00070 free(dsl) ; EXRETURN ;
00071 }