Doxygen Source Code Documentation
thd_checkidc.c File Reference
#include "mrilib.h"#include "thd.h"Go to the source code of this file.
Functions | |
| void | THD_check_idcodes (THD_sessionlist *ssl) |
Function Documentation
|
|
Definition at line 16 of file thd_checkidc.c. References DSET_HEADNAME, THD_session::dsset, DUPLICATE_DSETS, ENTRY, FIRST_VIEW_TYPE, free, ISVALID_DSET, ISVALID_SESSIONLIST, LAST_VIEW_TYPE, malloc, THD_session::num_dsset, THD_sessionlist::num_sess, and THD_sessionlist::ssar. Referenced by AFNI_read_inputs().
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 /*-- sanity check --*/
00025
00026 if( ! ISVALID_SESSIONLIST(ssl) || ssl->num_sess <= 0 ) EXRETURN ;
00027
00028 /*-- count number of datasets --*/
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 /*-- make list of datasets --*/
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 /*-- check list for duplicates --*/
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]) ){ /* 20 Dec 2001: change EQUIV_IDCODES() to DUPLICATE_DSETS() */
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 }
|