int WRRelinkDir( WResDir dest, WResDir src ) { WResLangType lt; WResTypeNode *dtnode; WResResNode *drnode; WResLangNode *dlnode; WResTypeNode *stnode; WResResNode *srnode; WResLangNode *slnode; if( dest == NULL || src == NULL ) { return( FALSE ); } if( dest->NumTypes != src->NumTypes || dest->NumResources != src->NumResources ) { return( FALSE ); } dtnode = dest->Head; if( dtnode != NULL ) { stnode = WRFindTypeNodeFromWResID( src, &dtnode->Info.TypeName ); } while( dtnode != NULL && stnode != NULL ) { drnode = dtnode->Head; if( drnode != NULL ) { srnode = WRFindResNodeFromWResID( stnode, &drnode->Info.ResName ); } while( drnode != NULL && srnode != NULL ) { dlnode = drnode->Head; if( dlnode != NULL ) { lt = dlnode->Info.lang; slnode = WRFindLangNodeFromLangType( srnode, < ); } while( dlnode != NULL && slnode != NULL ) { if( dlnode->data == NULL ) { dlnode->Info.Offset = slnode->Info.Offset; } dlnode = dlnode->Next; if( dlnode != NULL ) { lt = dlnode->Info.lang; slnode = WRFindLangNodeFromLangType( srnode, < ); } } drnode = drnode->Next; if( drnode != NULL ) { srnode = WRFindResNodeFromWResID( stnode, &drnode->Info.ResName ); } } dtnode = dtnode->Next; if( dtnode != NULL ) { stnode = WRFindTypeNodeFromWResID( src, &dtnode->Info.TypeName ); } } return( TRUE ); }
int WRAPI WRDoesNameExist( WResDir dir, WResID *type, WResID *res ) { WResTypeNode *type_node; WResResNode *res_node; type_node = WRFindTypeNodeFromWResID( dir, type ); if( type_node != NULL ) { res_node = WRFindResNodeFromWResID( type_node, res ); if( res_node != NULL ) { return( TRUE ); } } return( FALSE ); }