static PyObject * nevra_new(PyTypeObject *type, PyObject *args, PyObject *kwds) { _NevraObject *self = (_NevraObject*)type->tp_alloc(type, 0); if (self) { self->nevra = hy_nevra_create(); } return (PyObject*)self; }
HyNevra hy_nevra_clone(HyNevra nevra) { HyNevra clone = hy_nevra_create(); clone->name = g_strdup(nevra->name); clone->epoch = nevra->epoch; clone->version = g_strdup(nevra->version); clone->release = g_strdup(nevra->release); clone->arch = g_strdup(nevra->arch); return clone; }
int hy_possibilities_next_nevra(HyPossibilities iter, HyNevra *out_nevra) { if (iter->type != TYPE_NEVRA || iter->current == -1) return -1; HyForm form = iter->forms[iter->current]; while (form != _HY_FORM_STOP_) { iter->current++; *out_nevra = hy_nevra_create(); if (nevra_possibility(iter->subject, form, *out_nevra) == 0) { if (iter->sack == NULL) return 0; if (filter_real(*out_nevra, iter->sack, iter->flags)) return 0; } form = iter->forms[iter->current]; hy_nevra_free(*out_nevra); } return -1; }