/* * Adds a new offset list entry with the unique id and offset to an offsetList */ struct symbol_list_t *add_to_symbol_list(struct symbol_list_t **offsetList, const char *id, int offset) { // List was empty so initialize if(*offsetList == NULL) { *offsetList = new_symbol_list(); (*offsetList)->id = new_identifier(id); (*offsetList)->offset = offset; return *offsetList; } else { struct symbol_list_t *end = *offsetList; // Ensures only unique ids are added while(end->next != NULL) { if(strcmp(end->id, id) == 0) return end; end = end->next; } end->next = new_symbol_list(); end->next->id = new_identifier(id); end->next->offset = offset; return end->next; } }
/* Given the number of variables 'n', return variable_list with 'n' variables. */ static variable_list build_dimacs_variable_list(unsigned int n) { unsigned int i; variable_list res = setroom_variable_list(new_variable_list(), n); for (i = 0; i < n; i++) { char name[20]; bool_variable v; sprintf(name,"%u", (i + 1)); v = new_bool_variable(new_identifier(add_lydia_symbol(name), int_listNIL, qualifier_listNIL), variable_attribute_listNIL, 0); res = append_variable_list(res, to_variable(v)); } return res; }
void NewGeneVariableSummaryScrollArea::WidgetDataRefreshReceive(WidgetDataItem_VARIABLE_GROUPS_SUMMARY_SCROLL_AREA widget_data) { Empty(); std::for_each(widget_data.identifiers.cbegin(), widget_data.identifiers.cend(), [&](WidgetInstanceIdentifier const & identifier) { if (identifier.uuid && identifier.code && identifier.longhand) { WidgetInstanceIdentifier new_identifier(identifier); NewGeneVariableSummaryGroup * tmpGrp = new NewGeneVariableSummaryGroup(this, new_identifier, outp); tmpGrp->setTitle(identifier.longhand->c_str()); layout()->addWidget(tmpGrp); if (new_identifier.IsEqual(WidgetInstanceIdentifier::EQUALITY_CHECK_TYPE__UUID_PLUS_STRING_CODE, cached_active_vg)) { DoTabChange(new_identifier); // pick up any metadata changes? } } }); }