model_server/driver_mb/src/disbuild_analysis.h.cxx
// returns:  1 if no pmods upper and down
//
1 if no pmods upper and down
1 if no pmods upper and down
int disbuild_is_correct_pmod_project (projNode *pn)
{
    Initialize(disbuild_is_correct_pmod_project);
    int correct = 0;
    if (!pn) return correct;
    char const *cur_nm = pn->get_name();
    Xref *proj_xref = pn->get_xref ();
    if (proj_xref && !proj_xref->is_unreal_file() && !pn->get_xref(1)) {
	projNode *par = proj_xref->get_projNode();
	if (par) {
	    char const *nm = par->get_name();
	    msg("disbuild: parent $1 of project $2 has pmod;\n\tprojects and their subprojects cannot both have pmods.", error_sev) << nm << eoarg << cur_nm << eom;
	}
    } else if (Xref::test_subproj_pmod(pn) == -1) { 		
	msg("disbuild: project $1 has one or more pmod subprojects.\n\tProjects and their subprojects cannot both have pmods.", error_sev) << cur_nm << eom;
    } else
	correct =1;
    return correct;
}
int disbuild_is_correct_pmod_project ( projNode * pn ) { Initialize ( disbuild_is_correct_pmod_project ) ; int correct = 0 ; if ( ! pn ) return correct ; char const * cur_nm = pn -> get_name ( ) ; Xref * proj_xref = pn -> get_xref ( ) ; if ( proj_xref && ! proj_xref -> is_unreal_file ( ) && ! pn -> get_xref ( 1 ) ) { projNode * par = proj_xref -> get_projNode ( ) ; if ( par ) { char const * nm = par -> get_name ( ) ; msg ( " \n \t " , error_sev ) << nm << eoarg << cur_nm << eom ; } } else if ( Xref :: test_subproj_pmod ( pn ) == -1 ) { msg ( " \n \t " , error_sev ) << cur_nm << eom ; } else correct = 1 ; return correct ; }
returns:  1 if no pmods upper and down
returns : 1 if no pmods upper and down
/* check for parents pmod */ /* check for sub project pmod */