/** read the problem name out of the statistics */ static SCIP_RETCODE getStatistics( SCIP* scip, /**< SCIP data structure */ CIPINPUT* cipinput /**< CIP parsing data */ ) { char* buf; buf = cipinput->strbuf; if( strncmp(buf, "OBJECTIVE", 9) == 0 ) { cipinput->section = CIP_OBJECTIVE; return SCIP_OKAY; } SCIPdebugMessage("parse statistics\n"); if( strncmp(buf, " Problem name", 14) == 0 ) { char* name; char* s; name = strchr(buf, ':'); if( name == NULL ) { SCIPwarningMessage(scip, "did not find problem name (line: %d):\n%s\n", cipinput->linenumber, cipinput->strbuf); return SCIP_OKAY; /* no error, might work with empty problem name */ } /* skip ':' */ ++name; /* make sure that we terminate the string at comments ('#') or newline ('\r', '\n')*/ if( NULL != (s = strpbrk(name, "#\r\n")) ) *s = '\0'; /* remove white space (tabs, ' ') in front of the name */ while( isspace((unsigned char)* name) ) ++name; /* set problem name */ SCIP_CALL( SCIPsetProbName(scip, name) ); SCIPdebugMessage("problem name <%s>\n", name); } return SCIP_OKAY; }
/** read the problem name out of the statistics */ static SCIP_RETCODE getStatistic( SCIP* scip, /**< SCIP data structure */ CIPINPUT* cipinput /**< CIP parsing data */ ) { char* buf; buf = cipinput->strbuf; if( strncmp(buf, "OBJECTIVE", 9) == 0 ) { cipinput->section = CIP_OBJECTIVE; return SCIP_OKAY; } SCIPdebugMessage("parse statistic\n"); if( strncmp(buf, " Problem name", 14) == 0 ) { char* name; char* s; name = strchr(buf, ':'); if( name == NULL ) { SCIPwarningMessage(scip, "did not find problem name\n"); return SCIP_OKAY; /* no error, might work with empty problem name */ } /* skip ':' */ ++name; /* remove tabs new line form string */ if( NULL != (s = strpbrk(name, "#\r\n")) ) *s = '\0'; /* remove white space in front of the name */ while(isspace((unsigned char)*name)) name++; /* set problem name */ SCIP_CALL( SCIPsetProbName(scip, name) ); SCIPdebugMessage("problem name <%s>\n", name); } return SCIP_OKAY; }