/* SOS record functions */ STATIC SOSrec *create_SOSrec(SOSgroup *group, const char *name, int type, int priority, int size, int *variables, REAL *weights) { SOSrec *SOS; SOS = (SOSrec *) calloc(1 , sizeof(*SOS)); SOS->parent = group; SOS->type = type; if(name == NULL) SOS->name = NULL; else { allocCHAR(group->lp, &SOS->name, (int) (strlen(name)+1), FALSE); strcpy(SOS->name, name); } if(type < 0) type = abs(type); SOS->tagorder = 0; SOS->size = 0; SOS->priority = priority; SOS->members = NULL; SOS->weights = NULL; SOS->membersSorted = NULL; SOS->membersMapped = NULL; if(size > 0) size = append_SOSrec(SOS, size, variables, weights); return(SOS); }
/* First define general utilties for reporting and output */ char * __VACALL explain(lprec *lp, char *format, ...) { char buff[DEF_STRBUFSIZE+1]; va_list ap; va_start(ap, format); vsnprintf(buff, DEF_STRBUFSIZE, format, ap); va_end(ap); allocCHAR(lp, &(lp->ex_status), (int) strlen(buff), AUTOMATIC); strcpy(lp->ex_status, buff); return( lp->ex_status ); }