16 #define _RPMTE_INTERNAL
50 p->fd =
fdFree(p->fd,
"delTE");
54 p->arch =
_free(p->arch);
55 p->epoch =
_free(p->epoch);
56 p->name =
_free(p->name);
57 p->version =
_free(p->version);
58 p->release =
_free(p->release);
59 #ifdef RPM_VENDOR_MANDRIVA
60 p->distepoch =
_free(p->distepoch);
62 p->NEVR =
_free(p->NEVR);
63 p->NEVRA =
_free(p->NEVRA);
64 p->pkgid =
_free(p->pkgid);
65 p->hdrid =
_free(p->hdrid);
66 p->sourcerpm =
_free(p->sourcerpm);
68 p->replaced =
_free(p->replaced);
70 p->flink.NEVRA =
argvFree(p->flink.NEVRA);
71 p->flink.Pkgid =
argvFree(p->flink.Pkgid);
72 p->flink.Hdrid =
argvFree(p->flink.Hdrid);
73 p->blink.NEVRA =
argvFree(p->blink.NEVRA);
74 p->blink.Pkgid =
argvFree(p->blink.Pkgid);
75 p->blink.Hdrid =
argvFree(p->blink.Hdrid);
101 HE_t he = memset(
alloca(
sizeof(*he)), 0,
sizeof(*he));
106 assert(he->
p.
str != NULL);
107 p->NEVR = (xx ? he->
p.
str :
xstrdup(
"?N-?V-?R.?A"));
111 p->name = (xx ? he->
p.
str :
xstrdup(
"?RPMTAG_NAME?"));
114 p->version = (
char *)(xx ? he->
p.
str :
xstrdup(
"?RPMTAG_VERSION?"));
117 p->release = (
char *)(xx ? he->
p.
str :
xstrdup(
"?RPMTAG_RELEASE?"));
123 if (he->
p.
ui8p != NULL) {
124 static const char hex[] =
"0123456789abcdef";
128 p->pkgid = t =
xmalloc((2*he->
c) + 1);
129 for (i = 0 ; i < he->
c; i++) {
130 *t++ = hex[ (unsigned)((he->
p.
ui8p[i] >> 4) & 0x0f) ];
131 *t++ = hex[ (unsigned)((he->
p.
ui8p[i] ) & 0x0f) ];
140 p->hdrid = (xx ? he->
p.
str :
xstrdup(
"?RPMTAG_HDRID?"));
144 p->sourcerpm = (xx ? he->
p.
str : NULL);
148 p->arch = (xx ? he->
p.
str :
xstrdup(
"?RPMTAG_ARCH?"));
162 if (he->
p.
ui32p != NULL) {
164 sprintf(p->epoch,
"%u", he->
p.
ui32p[0]);
169 #ifdef RPM_VENDOR_MANDRIVA
172 if (he->
p.
str != NULL) {
173 p->distepoch = (
char*)(xx ? he->
p.
str :
xstrdup(
"?RPMTAG_DISTEPOCH?"));
181 p->autorelocatex = -1;
189 memset(p->originTid, 0,
sizeof(p->originTid));
190 memset(p->originTime, 0,
sizeof(p->originTime));
223 if (_rpmtePool == NULL) {
238 HE_t he = memset(
alloca(
sizeof(*he)), 0,
sizeof(*he));
244 addTE(ts, p, h, key, relocs);
247 p->u.addedKey = pkgKey;
249 p->pkgFileSize = 96 + 256;
253 p->pkgFileSize += *he->
p.
ui32p;
257 p->u.addedKey = pkgKey;
258 p->u.removed.dboffset = dboffset;
267 return (te != NULL ? te->db_instance : 0);
274 te->db_instance = instance;
280 return (te != NULL && te->h != NULL ?
headerLink(te->h) : NULL);
304 return (te != NULL ? te->name : NULL);
309 return (te != NULL ? te->epoch : NULL);
314 return (te != NULL ? te->version : NULL);
319 return (te != NULL ? te->release : NULL);
322 #ifdef RPM_VENDOR_MANDRIVA
323 const char * rpmteD(
rpmte te)
325 return (te != NULL ? te->distepoch : NULL);
331 return (te != NULL ? te->arch : NULL);
336 return (te != NULL ? te->os : NULL);
341 return (te != NULL ? te->isSource : 0);
346 return (te != NULL ? te->color : 0);
361 return (te != NULL ? te->pkgFileSize : 0);
366 return te->originTid;
371 return te->originTime;
376 return (te != NULL ? te->depth : 0);
391 return (te != NULL ? te->depth : 0);
398 obreadth = te->breadth;
399 te->breadth = nbreadth;
406 return (te != NULL ? te->npreds : 0);
421 return (te != NULL ? te->tree : 0);
436 return (te != NULL ? te->parent : NULL);
453 return (te != NULL ? te->degree : 0);
460 odegree = te->degree;
461 te->degree = ndegree;
475 if (te != NULL &&
rpmteTSI(te) != NULL) {
479 while ((tsi =
rpmteTSI(te)->tsi_next) != NULL) {
480 rpmteTSI(te)->tsi_next = tsi->tsi_next;
481 tsi->tsi_next = NULL;
484 te->tsi =
_free(te->tsi);
495 te->tsi =
xcalloc(1,
sizeof(*te->tsi));
508 opkgKey = te->u.addedKey;
509 te->u.addedKey = npkgKey;
517 return (te != NULL ? te->u.removed.dboffset : 0);
522 return (te != NULL ? te->NEVR : NULL);
527 return (te != NULL ? te->NEVRA : NULL);
532 return (te != NULL ? te->pkgid : NULL);
537 return (te != NULL ? te->hdrid : NULL);
542 return (te != NULL ? te->sourcerpm : NULL);
548 return (te != NULL ? te->fd : NULL);
554 return (te != NULL ? te->key : NULL);
605 nb = Count *
sizeof(*colors);
606 colors = memset(
alloca(nb), 0, nb);
607 nb = Count *
sizeof(*refs);
608 refs = memset(
alloca(nb), -1, nb);
620 mydt = (char)((ix >> 24) & 0xff);
624 assert ((
int)ix < Count);
646 HE_t he = memset(
alloca(
sizeof(*he)), 0,
sizeof(*he));
647 const char * blinkNEVRA = NULL;
648 const char * blinkPkgid = NULL;
649 const char * blinkHdrid = NULL;
656 assert(he->
p.
str != NULL);
657 blinkNEVRA = he->
p.
str;
666 if (xx && he->
p.
ui8p != NULL) {
667 static const char hex[] =
"0123456789abcdef";
671 blinkPkgid = t =
xmalloc((2*he->
c) + 1);
672 for (i = 0 ; i < he->
c; i++) {
673 *t++ = hex[ ((he->
p.
ui8p[i] >> 4) & 0x0f) ];
674 *t++ = hex[ ((he->
p.
ui8p[i] ) & 0x0f) ];
683 blinkHdrid = he->
p.
str;
687 fprintf(stderr,
"%s argvAdd(&q->flink.NEVRA, \"%s\")\n", msg, p->NEVRA);
688 xx =
argvAdd(&q->flink.NEVRA, p->NEVRA);
690 fprintf(stderr,
"%s argvAdd(&p->blink.NEVRA, \"%s\")\n", msg, blinkNEVRA);
691 xx =
argvAdd(&p->blink.NEVRA, blinkNEVRA);
693 fprintf(stderr,
"%s argvAdd(&q->flink.Pkgid, \"%s\")\n", msg, p->pkgid);
694 if (p->pkgid != NULL)
695 xx =
argvAdd(&q->flink.Pkgid, p->pkgid);
697 fprintf(stderr,
"%s argvAdd(&p->blink.Pkgid, \"%s\")\n", msg, blinkPkgid);
698 if (blinkPkgid != NULL)
699 xx =
argvAdd(&p->blink.Pkgid, blinkPkgid);
701 fprintf(stderr,
"%s argvAdd(&q->flink.Hdrid, \"%s\")\n", msg, p->hdrid);
702 if (p->hdrid != NULL)
703 xx =
argvAdd(&q->flink.Hdrid, p->hdrid);
705 fprintf(stderr,
"%s argvAdd(&p->blink.Hdrid, \"%s\")\n", msg, blinkHdrid);
706 if (blinkHdrid != NULL)
707 xx =
argvAdd(&p->blink.Hdrid, blinkHdrid);
710 blinkNEVRA =
_free(blinkNEVRA);
711 blinkPkgid =
_free(blinkPkgid);
712 blinkHdrid =
_free(blinkHdrid);
743 if (_rpmtsiPool == NULL) {
760 tsi->ocsave = tsi->oc;
777 if (tsi == NULL || tsi->ts == NULL ||
rpmtsNElements(tsi->ts) <= 0)
781 if (tsi->oc >= 0) oc = tsi->oc--;
796 if (type == 0 || (te->type & type) != 0)