RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [EMAIL PROTECTED] Module: rpm Date: 08-Nov-2007 16:15:41 Branch: HEAD Handle: 2007110815153704 Modified files: rpm CHANGES rpm/build files.c pack.c parseChangelog.c parsePreamble.c reqprov.c rpm/lib formats.c psm.c rpmchecksig.c rpmfc.c rpmfi.c rpm/python header-py.c rpm/rpmdb Makefile.am hdrNVR.c hdrfmt.c header.c header.h header_internal.c rpmdb.c signature.c sqlite.c rpm/tools rpmcache.c Log: - finish converting to headerAddExtension() everywhere. - change names of header tag integer types: s/INT32/UINT32/ etc. Summary: Revision Changes Path 1.1773 +2 -0 rpm/CHANGES 1.285 +13 -13 rpm/build/files.c 2.245 +4 -4 rpm/build/pack.c 2.35 +1 -1 rpm/build/parseChangelog.c 2.143 +1 -1 rpm/build/parsePreamble.c 1.79 +2 -2 rpm/build/reqprov.c 2.116 +1 -1 rpm/lib/formats.c 2.255 +4 -4 rpm/lib/psm.c 1.165 +5 -5 rpm/lib/rpmchecksig.c 1.32 +7 -7 rpm/lib/rpmfc.c 2.96 +1 -1 rpm/lib/rpmfi.c 1.71 +96 -43 rpm/python/header-py.c 1.85 +1 -1 rpm/rpmdb/Makefile.am 1.24 +11 -11 rpm/rpmdb/hdrNVR.c 1.28 +20 -20 rpm/rpmdb/hdrfmt.c 1.114 +31 -31 rpm/rpmdb/header.c 1.58 +4 -4 rpm/rpmdb/header.h 1.12 +16 -14 rpm/rpmdb/header_internal.c 1.200 +16 -16 rpm/rpmdb/rpmdb.c 1.16 +1 -1 rpm/rpmdb/signature.c 1.19 +8 -8 rpm/rpmdb/sqlite.c 2.22 +36 -12 rpm/tools/rpmcache.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/CHANGES ============================================================================ $ cvs diff -u -r1.1772 -r1.1773 CHANGES --- rpm/CHANGES 4 Nov 2007 20:51:26 -0000 1.1772 +++ rpm/CHANGES 8 Nov 2007 15:15:37 -0000 1.1773 @@ -1,4 +1,6 @@ 4.5 -> 5.0: + - jbj: finish converting to headerAddExtension() everywhere. + - jbj: change names of header tag integer types: s/INT32/UINT32/ etc. - jbj: finish bulldozing headerAddEntry throughout rpmbuild. - jbj: start bulldozing headerAddEntry throughout rpmbuild. - jbj: use HAE_t for signature tags, change int_32 to uint32_t where needed. @@ . patch -p0 <<'@@ .' Index: rpm/build/files.c ============================================================================ $ cvs diff -u -r1.284 -r1.285 files.c --- rpm/build/files.c 6 Nov 2007 19:17:00 -0000 1.284 +++ rpm/build/files.c 8 Nov 2007 15:15:38 -0000 1.285 @@ -1252,7 +1252,7 @@ exit: if (count > 0) { he->tag = RPMTAG_DIRINDEXES; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = dirIndexes; he->c = count; xx = hae(h, he, 0); @@ -1403,7 +1403,7 @@ /[EMAIL PROTECTED]@*/ ui32 = flp->fl_size; he->tag = RPMTAG_FILESIZES; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &ui32; he->c = 1; he->append = 1; @@ -1428,7 +1428,7 @@ ui32 = flp->fl_mtime; he->tag = RPMTAG_FILEMTIMES; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &ui32; he->c = 1; he->append = 1; @@ -1437,7 +1437,7 @@ ui16 = flp->fl_mode; he->tag = RPMTAG_FILEMODES; - he->t = RPM_INT16_TYPE; + he->t = RPM_UINT16_TYPE; he->p.ui16p = &ui16; he->c = 1; he->append = 1; @@ -1446,7 +1446,7 @@ ui16 = flp->fl_rdev; he->tag = RPMTAG_FILERDEVS; - he->t = RPM_INT16_TYPE; + he->t = RPM_UINT16_TYPE; he->p.ui16p = &ui16; he->c = 1; he->append = 1; @@ -1455,7 +1455,7 @@ ui32 = flp->fl_dev; he->tag = RPMTAG_FILEDEVICES; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &ui32; he->c = 1; he->append = 1; @@ -1464,7 +1464,7 @@ ui32 = flp->fl_ino; he->tag = RPMTAG_FILEINODES; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &ui32; he->c = 1; he->append = 1; @@ -1532,7 +1532,7 @@ ui32 = dalgo; he->tag = RPMTAG_FILEDIGESTALGOS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &ui32; he->c = 1; he->append = 1; @@ -1573,7 +1573,7 @@ } ui32 = flp->verifyFlags; he->tag = RPMTAG_FILEVERIFYFLAGS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &ui32; he->c = 1; he->append = 1; @@ -1588,7 +1588,7 @@ ui32 = flp->flags; he->tag = RPMTAG_FILEFLAGS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &ui32; he->c = 1; he->append = 1; @@ -1619,7 +1619,7 @@ ui32 = fl->totalFileSize; he->tag = RPMTAG_SIZE; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &ui32; he->c = 1; he->append = 1; @@ -2609,7 +2609,7 @@ he->append = 0; if (srcPtr->flags & RPMFILE_GHOST) { he->tag = RPMTAG_NOSOURCE; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &srcPtr->num; he->c = 1; he->append = 1; @@ -2627,7 +2627,7 @@ he->append = 0; if (srcPtr->flags & RPMFILE_GHOST) { he->tag = RPMTAG_NOPATCH; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &srcPtr->num; he->c = 1; he->append = 1; @@ . patch -p0 <<'@@ .' Index: rpm/build/pack.c ============================================================================ $ cvs diff -u -r2.244 -r2.245 pack.c --- rpm/build/pack.c 4 Nov 2007 19:37:02 -0000 2.244 +++ rpm/build/pack.c 8 Nov 2007 15:15:38 -0000 2.245 @@ -529,7 +529,7 @@ he->append = 0; he->tag = RPMTAG_PROVIDEFLAGS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &fdummy; he->c = 1; he->append = 1; @@ -579,7 +579,7 @@ he->append = 0; he->tag = RPMTAG_PROVIDEFLAGS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &pFlags; he->c = 1; he->append = 1; @@ -624,7 +624,7 @@ csa->cpioArchiveSize = 0; /* Add a bogus archive size to the Header */ he->tag = RPMTAG_ARCHIVESIZE; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &csa->cpioArchiveSize; he->c = 1; xx = hae(h, he, 0); @@ -790,7 +790,7 @@ { uint32_t payloadSize = csa->cpioArchiveSize; he->tag = RPMSIGTAG_PAYLOADSIZE; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &payloadSize; he->c = 1; xx = hae(sigh, he, 0); @@ . patch -p0 <<'@@ .' Index: rpm/build/parseChangelog.c ============================================================================ $ cvs diff -u -r2.34 -r2.35 parseChangelog.c --- rpm/build/parseChangelog.c 4 Nov 2007 19:37:02 -0000 2.34 +++ rpm/build/parseChangelog.c 8 Nov 2007 15:15:38 -0000 2.35 @@ -20,7 +20,7 @@ int xx; he->tag = RPMTAG_CHANGELOGTIME; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &mytime; he->c = 1; he->append = 1; @@ . patch -p0 <<'@@ .' Index: rpm/build/parsePreamble.c ============================================================================ $ cvs diff -u -r2.142 -r2.143 parsePreamble.c --- rpm/build/parsePreamble.c 4 Nov 2007 17:59:55 -0000 2.142 +++ rpm/build/parsePreamble.c 8 Nov 2007 15:15:38 -0000 2.143 @@ -679,7 +679,7 @@ return RPMRC_FAIL; } he->tag = tag; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = # he->c = 1; xx = hae(pkg->header, he, 0); @@ . patch -p0 <<'@@ .' Index: rpm/build/reqprov.c ============================================================================ $ cvs diff -u -r1.78 -r1.79 reqprov.c --- rpm/build/reqprov.c 4 Nov 2007 19:37:02 -0000 1.78 +++ rpm/build/reqprov.c 8 Nov 2007 15:15:38 -0000 1.79 @@ -128,7 +128,7 @@ he->append = 0; he->tag = flagtag; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &Flags; he->c = 1; he->append = 1; @@ -137,7 +137,7 @@ } if (indextag) { he->tag = indextag; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &index; he->c = 1; he->append = 1; @@ . patch -p0 <<'@@ .' Index: rpm/lib/formats.c ============================================================================ $ cvs diff -u -r2.115 -r2.116 formats.c --- rpm/lib/formats.c 19 Oct 2007 00:36:44 -0000 2.115 +++ rpm/lib/formats.c 8 Nov 2007 15:15:39 -0000 2.116 @@ -81,7 +81,7 @@ if (rpmGetFilesystemList(NULL, &he->c)) goto exit; - he->t = RPM_INT64_TYPE; + he->t = RPM_UINT64_TYPE; he->freeData = 1; if (fnames.ptr == NULL) @@ . patch -p0 <<'@@ .' Index: rpm/lib/psm.c ============================================================================ $ cvs diff -u -r2.254 -r2.255 psm.c --- rpm/lib/psm.c 3 Nov 2007 23:44:00 -0000 2.254 +++ rpm/lib/psm.c 8 Nov 2007 15:15:39 -0000 2.255 @@ -1532,13 +1532,13 @@ } he->tag = RPMTAG_INSTALLTIME; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &installTime; he->c = 1; xx = hae(fi->h, he, 0); he->tag = RPMTAG_INSTALLCOLOR; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &tscolor; he->c = 1; xx = hae(fi->h, he, 0); @@ -1546,7 +1546,7 @@ /* XXX FIXME: add preferred color at install. */ he->tag = RPMTAG_PACKAGECOLOR; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &tecolor; he->c = 1; xx = hae(fi->h, he, 0); @@ -1933,7 +1933,7 @@ { uint32_t tid = rpmtsGetTid(ts); he->tag = RPMTAG_REMOVETID; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &tid; he->c = 1; xx = hae(psm->oh, he, 0); @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmchecksig.c ============================================================================ $ cvs diff -u -r1.164 -r1.165 rpmchecksig.c --- rpm/lib/rpmchecksig.c 3 Nov 2007 23:44:00 -0000 1.164 +++ rpm/lib/rpmchecksig.c 8 Nov 2007 15:15:39 -0000 1.165 @@ -562,7 +562,7 @@ xx = hae(h, he, 0); he->tag = RPMTAG_SIZE; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &zero; he->c = 1; xx = hae(h, he, 0); @@ -580,7 +580,7 @@ he->c = 1; xx = hae(h, he, 0); he->tag = RPMTAG_PROVIDEFLAGS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &pflags; he->c = 1; xx = hae(h, he, 0); @@ -596,7 +596,7 @@ he->c = 1; xx = hae(h, he, 0); he->tag = RPMTAG_PROVIDEFLAGS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &pflags; he->c = 1; xx = hae(h, he, 0); @@ -617,13 +617,13 @@ xx = hae(h, he, 0); { uint32_t tid = rpmtsGetTid(ts); he->tag = RPMTAG_INSTALLTIME; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &tid; he->c = 1; xx = hae(h, he, 0); /* XXX W2DO: tag value inheirited from parent? */ he->tag = RPMTAG_BUILDTIME; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &tid; he->c = 1; xx = hae(h, he, 0); @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmfc.c ============================================================================ $ cvs diff -u -r1.31 -r1.32 rpmfc.c --- rpm/lib/rpmfc.c 3 Nov 2007 23:44:01 -0000 1.31 +++ rpm/lib/rpmfc.c 8 Nov 2007 15:15:39 -0000 1.32 @@ -1517,7 +1517,7 @@ /* Add per-file colors(#files) */ he->tag = RPMTAG_FILECOLORS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = argiData(fc->fcolor); he->c = argiCount(fc->fcolor); assert(ac == he->c); @@ -1543,7 +1543,7 @@ /* Add per-file classes(#files) */ he->tag = RPMTAG_FILECLASS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = argiData(fc->fcdictx); he->c = argiCount(fc->fcdictx); assert(ac == he->c); @@ -1569,7 +1569,7 @@ xx = hae(pkg->header, he, 0); he->tag = RPMTAG_PROVIDEFLAGS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = fc->provides->Flags; assert(he->p.ptr != NULL); xx = hae(pkg->header, he, 0); @@ -1595,7 +1595,7 @@ xx = hae(pkg->header, he, 0); he->tag = RPMTAG_REQUIREFLAGS; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = fc->requires->Flags; assert(he->p.ptr != NULL); xx = hae(pkg->header, he, 0); @@ -1604,7 +1604,7 @@ /* Add dependency dictionary(#dependencies) */ he->tag = RPMTAG_DEPENDSDICT; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = argiData(fc->ddictx); he->c = argiCount(fc->ddictx); if (he->p.ptr != NULL) { @@ -1613,7 +1613,7 @@ /* Add per-file dependency (start,number) pairs (#files) */ he->tag = RPMTAG_FILEDEPENDSX; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = argiData(fc->fddictx); he->c = argiCount(fc->fddictx); assert(ac == he->c); @@ -1622,7 +1622,7 @@ } he->tag = RPMTAG_FILEDEPENDSN; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = argiData(fc->fddictn); he->c = argiCount(fc->fddictn); assert(ac == he->c); @@ . patch -p0 <<'@@ .' Index: rpm/lib/rpmfi.c ============================================================================ $ cvs diff -u -r2.95 -r2.96 rpmfi.c --- rpm/lib/rpmfi.c 3 Nov 2007 23:44:01 -0000 2.95 +++ rpm/lib/rpmfi.c 8 Nov 2007 15:15:39 -0000 2.96 @@ -1138,7 +1138,7 @@ fi->dc = he->c; he->tag = RPMTAG_DIRINDEXES; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = dirIndexes; he->c = fileCount; xx = hme(h, he->tag, he->t, he->p.ptr, he->c); @@ . patch -p0 <<'@@ .' Index: rpm/python/header-py.c ============================================================================ $ cvs diff -u -r1.70 -r1.71 header-py.c --- rpm/python/header-py.c 3 Nov 2007 23:44:03 -0000 1.70 +++ rpm/python/header-py.c 8 Nov 2007 15:15:40 -0000 1.71 @@ -173,7 +173,7 @@ /[EMAIL PROTECTED] h @*/ { HGE_t hge = (HGE_t)headerGetExtension; - HAE_t hae = (HAE_t)headerAddEntry; + HAE_t hae = (HAE_t)headerAddExtension; HRE_t hre = (HRE_t)headerRemoveEntry; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); int xx; @@ -184,7 +184,8 @@ xx = hge(h, he, 0); if (he->p.ptr == NULL || he->c <= 0) return; - xx = hae(h, RPMTAG_OLDFILENAMES, he->t, he->p, he->c); + he->tag = RPMTAG_OLDFILENAMES; + xx = hae(h, he, 0); he->p.ptr = _free(he->p.ptr); } /[EMAIL PROTECTED]@*/ @@ -203,14 +204,14 @@ /[EMAIL PROTECTED] h @*/ { HGE_t hge = (HGE_t)headerGetExtension; - HAE_t hae = (HAE_t)headerAddEntry; + HAE_t hae = headerAddExtension; HRE_t hre = (HRE_t)headerRemoveEntry; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); const char ** fileNames; const char ** dirNames; const char ** baseNames; - int_32 * dirIndexes; - int count; + uint32_t * dirIndexes; + uint32_t count; int dirIndex = -1; int xx; int i; @@ -281,11 +282,23 @@ exit: if (count > 0) { - xx = hae(h, RPMTAG_DIRINDEXES, RPM_INT32_TYPE, dirIndexes, count); - xx = hae(h, RPMTAG_BASENAMES, RPM_STRING_ARRAY_TYPE, - baseNames, count); - xx = hae(h, RPMTAG_DIRNAMES, RPM_STRING_ARRAY_TYPE, - dirNames, dirIndex + 1); + he->tag = RPMTAG_DIRINDEXES; + he->t = RPM_UINT32_TYPE; + he->p.ui32p = dirIndexes; + he->c = count; + xx = hae(h, he, 0); + + he->tag = RPMTAG_DIRINDEXES; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = baseNames; + he->c = count; + xx = hae(h, he, 0); + + he->tag = RPMTAG_DIRNAMES; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = dirNames; + he->c = dirIndex + 1; + xx = hae(h, he, 0); } fileNames = _free(fileNames); @@ -301,6 +314,7 @@ /[EMAIL PROTECTED]/ { HGE_t hge = (HGE_t)headerGetExtension; + HAE_t hae = headerAddExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); int xx; @@ -316,7 +330,8 @@ return; /* XXX Legacy tag needs to go away. */ - headerAddEntry(h, RPMTAG_OLDFILENAMES, he->t, he->p.ptr, he->c); + he->tag = RPMTAG_OLDFILENAMES; + xx = hae(h, he, 0); he->p.ptr = _free(he->p.ptr); } @@ -331,17 +346,18 @@ static void providePackageNVR(Header h) { HGE_t hge = (HGE_t)headerGetExtension; + HAE_t hae = headerAddExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); const char *N, *V, *R; - int_32 E; + uint32_t E; int gotE; const char *pEVR; char *p; - int_32 pFlags = RPMSENSE_EQUAL; + uint32_t pFlags = RPMSENSE_EQUAL; const char ** provides = NULL; const char ** providesEVR = NULL; - int_32 * provideFlags = NULL; - int providesCount; + uint32_t * provideFlags = NULL; + uint32_t providesCount; int i, xx; int bingo = 1; @@ -380,12 +396,18 @@ providesEVR = he->p.argv; if (!xx) { for (i = 0; i < providesCount; i++) { - char * vdummy = ""; - int_32 fdummy = RPMSENSE_ANY; - xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE, - &vdummy, 1); - xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEFLAGS, RPM_INT32_TYPE, - &fdummy, 1); + static char vdummy[] = ""; + static uint32_t fdummy = RPMSENSE_ANY; + he->tag = RPMTAG_PROVIDEVERSION; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &vdummy; + he->c = 1; + xx = hae(h, he, 0); + he->tag = RPMTAG_PROVIDEFLAGS; + he->t = RPM_UINT32_TYPE; + he->p.ui32p = &fdummy; + he->c = 1; + xx = hae(h, he, 0); } goto exit; } @@ -413,12 +435,29 @@ provideFlags = _free(provideFlags); if (bingo) { - xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDENAME, RPM_STRING_ARRAY_TYPE, - &N, 1); - xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEFLAGS, RPM_INT32_TYPE, - &pFlags, 1); - xx = headerAddOrAppendEntry(h, RPMTAG_PROVIDEVERSION, RPM_STRING_ARRAY_TYPE, - &pEVR, 1); + he->tag = RPMTAG_PROVIDENAME; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = N; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + he->tag = RPMTAG_PROVIDEVERSION; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = pEVR; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; + + he->tag = RPMTAG_PROVIDEFLAGS; + he->t = RPM_UINT32_TYPE; + he->p.ui32p = pFlags; + he->c = 1; + he->append = 1; + xx = hae(h, he, 0); + he->append = 0; } } #endif /* SUPPORT_RPMV3_PROVIDE_SELF */ @@ -453,10 +492,10 @@ case RPM_OPENPGP_TYPE: case RPM_ASN1_TYPE: case RPM_BIN_TYPE: - case RPM_INT64_TYPE: - case RPM_INT32_TYPE: - case RPM_INT16_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT64_TYPE: + case RPM_UINT32_TYPE: + case RPM_UINT16_TYPE: + case RPM_UINT8_TYPE: case RPM_CHAR_TYPE: case RPM_STRING_ARRAY_TYPE: case RPM_STRING_TYPE: @@ -789,7 +828,7 @@ break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: if (he->c != 1 || forceArray) { metao = PyList_New(0); for (i = 0; i < he->c; i++) { @@ -803,7 +842,7 @@ } break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: if (he->c != 1 || forceArray) { metao = PyList_New(0); for (i = 0; i < he->c; i++) { @@ -817,7 +856,7 @@ } break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: if (he->c != 1 || forceArray) { metao = PyList_New(0); for (i = 0; i < he->c; i++) { @@ -831,7 +870,7 @@ } break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: if (he->c != 1 || forceArray) { metao = PyList_New(0); for (i = 0; i < he->c; i++) { @@ -1098,6 +1137,10 @@ */ int rpmMergeHeaders(PyObject * list, FD_t fd, int matchTag) { + HGE_t hge = (HGE_t)headerGetExtension; + HAE_t hae = headerAddExtension; + HRE_t hre = (HRE_t)headerRemoveEntry; + HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); Header h; HeaderIterator hi; rpmTagData newMatch; @@ -1108,22 +1151,32 @@ rpmTagType t; rpmTagCount c; rpmTagData p; + int xx; Py_BEGIN_ALLOW_THREADS h = headerRead(fd); Py_END_ALLOW_THREADS while (h) { - if (!headerGetEntry(h, matchTag, NULL, &newMatch, NULL)) { + he->tag = matchTag; + xx = hge(hdr->h, he, 0); + newMatch.ptr = he->p.ptr; + if (!xx) { PyErr_SetString(pyrpmError, "match tag missing in new header"); return 1; } hdr = (hdrObject *) PyList_GetItem(list, count++); - if (!hdr) return 1; + if (!hdr) { + PyErr_SetString(pyrpmError, "match list item missing"); + return 1; + } - if (!headerGetEntry(hdr->h, matchTag, NULL, &oldMatch, NULL)) { - PyErr_SetString(pyrpmError, "match tag missing in new header"); + he->tag = matchTag; + xx = hge(hdr->h, he, 0); + oldMatch.ptr = he->p.ptr; + if (!xx) { + PyErr_SetString(pyrpmError, "match tag missing in old header"); return 1; } @@ -1137,12 +1190,12 @@ hdr->linkList = _free(hdr->linkList); for (hi = headerInitIterator(h); - headerNextIterator(hi, &tag, &t, &p, &c); - p.ptr = headerFreeData(p.ptr, t)) + headerNextIterator(hi, &he->tag, &he->t, &he->p, &he->c); + he->p.ptr = headerFreeData(he->p.ptr, t)) { /* could be dupes */ - headerRemoveEntry(hdr->h, tag); - headerAddEntry(hdr->h, tag, t, p.ptr, c); + xx = hre(hdr->h, he->tag); + xx = hae(hdr->h, he, 0); } headerFreeIterator(hi); @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/Makefile.am ============================================================================ $ cvs diff -u -r1.84 -r1.85 Makefile.am --- rpm/rpmdb/Makefile.am 1 Nov 2007 17:37:49 -0000 1.84 +++ rpm/rpmdb/Makefile.am 8 Nov 2007 15:15:40 -0000 1.85 @@ -85,7 +85,7 @@ @echo '' >> $@ @echo '/[EMAIL PROTECTED]@*/ /[EMAIL PROTECTED]@*/' >> $@ @echo 'static const struct headerTagTableEntry_s rpmTagTbl[] = {' >> $@ - ${AWK} '/(RPMTAG_[A-Z0-9]*)[ \t]+([0-9]*)/ && !/internal/ {tt = "NULL"; ta = "ANY"; if ($$5 == "c") {tt = "CHAR"; ta = "SCALAR"} if ($$5 == "c[]") {tt = "CHAR"; ta = "ARRAY"} if ($$5 == "h") {tt = "INT16"; ta = "SCALAR"} if ($$5 == "h[]") {tt = "INT16"; ta = "ARRAY"} if ($$5 == "i") {tt = "INT32"; ta = "SCALAR"} if ($$5 == "i[]") {tt = "INT32"; ta = "ARRAY"} if ($$5 == "l") {tt = "INT64"; ta = "SCALAR"} if ($$5 == "l[]") {tt = "INT64"; ta = "ARRAY"} if ($$5 == "s") {tt = "STRING"; ta = "SCALAR"} if ($$5 == "s[]") {tt = "STRING_ARRAY"; ta = "ARRAY"} if ($$5 == "s{}") {tt = "I18NSTRING"; ta = "SCALAR"} if ($$5 == "x") {tt = "BIN"; ta = "SCALAR"} if ($$2 == "=") { printf("\t{ \"%s\", %s RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", $$1, $$3, tt, ta) } else { printf("\t{ \"%s\", %s, RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", $$2, $$3, tt, ta) } }' < ${top_srcdir}/rpmdb/rpmtag.h | sort >> $@ + ${AWK} '/(RPMTAG_[A-Z0-9]*)[ \t]+([0-9]*)/ && !/internal/ {tt = "NULL"; ta = "ANY"; if ($$5 == "c") {tt = "CHAR"; ta = "SCALAR"} if ($$5 == "c[]") {tt = "CHAR"; ta = "ARRAY"} if ($$5 == "h") {tt = "UINT16"; ta = "SCALAR"} if ($$5 == "h[]") {tt = "UINT16"; ta = "ARRAY"} if ($$5 == "i") {tt = "UINT32"; ta = "SCALAR"} if ($$5 == "i[]") {tt = "UINT32"; ta = "ARRAY"} if ($$5 == "l") {tt = "UINT64"; ta = "SCALAR"} if ($$5 == "l[]") {tt = "UINT64"; ta = "ARRAY"} if ($$5 == "s") {tt = "STRING"; ta = "SCALAR"} if ($$5 == "s[]") {tt = "STRING_ARRAY"; ta = "ARRAY"} if ($$5 == "s{}") {tt = "I18NSTRING"; ta = "SCALAR"} if ($$5 == "x") {tt = "BIN"; ta = "SCALAR"} if ($$2 == "=") { printf("\t{ \"%s\", %s RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", $$1, $$3, tt, ta) } else { printf("\t{ \"%s\", %s, RPM_%s_TYPE + RPM_%s_RETURN_TYPE },\n", $$2, $$3, tt, ta) } }' < ${top_srcdir}/rpmdb/rpmtag.h | sort >> $@ @echo ' { NULL, 0, 0 }' >> $@ @echo '};' >> $@ @echo '' >> $@ @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/hdrNVR.c ============================================================================ $ cvs diff -u -r1.23 -r1.24 hdrNVR.c --- rpm/rpmdb/hdrNVR.c 3 Nov 2007 23:44:03 -0000 1.23 +++ rpm/rpmdb/hdrNVR.c 8 Nov 2007 15:15:40 -0000 1.24 @@ -64,19 +64,19 @@ ival = 0; switch (he->t) { case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: ival = he->p.ui8p[0]; val = numbuf; /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: ival = he->p.ui16p[0]; val = numbuf; /[EMAIL PROTECTED]@*/ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: ival = he->p.ui32p[0]; val = numbuf; /[EMAIL PROTECTED]@*/ break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: ival = he->p.ui64p[0]; val = numbuf; /[EMAIL PROTECTED]@*/ break; @@ -118,7 +118,7 @@ if (!xx) continue; switch (he->t) { - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: delMacro(NULL, tagm->macroname); /[EMAIL PROTECTED]@*/ break; case RPM_STRING_TYPE: @@ -129,8 +129,8 @@ case RPM_BIN_TYPE: case RPM_NULL_TYPE: case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: - case RPM_INT16_TYPE: + case RPM_UINT8_TYPE: + case RPM_UINT16_TYPE: default: /[EMAIL PROTECTED]@*/ break; } @@ -287,10 +287,10 @@ assert(0); /* XXX keep gcc quiet */ /[EMAIL PROTECTED]@*/ break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: - case RPM_INT16_TYPE: - case RPM_INT32_TYPE: - case RPM_INT64_TYPE: + case RPM_UINT8_TYPE: + case RPM_UINT16_TYPE: + case RPM_UINT32_TYPE: + case RPM_UINT64_TYPE: if (he->c != 1) continue; /[EMAIL PROTECTED]@*/ break; @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/hdrfmt.c ============================================================================ $ cvs diff -u -r1.27 -r1.28 hdrfmt.c --- rpm/rpmdb/hdrfmt.c 3 Nov 2007 23:44:03 -0000 1.27 +++ rpm/rpmdb/hdrfmt.c 8 Nov 2007 15:15:40 -0000 1.28 @@ -83,7 +83,7 @@ char * val; assert(ix == 0); - if (he->t != RPM_INT64_TYPE) + if (he->t != RPM_UINT64_TYPE) val = xstrdup(_("(invalid type)")); else { uint64_t anint = data.ui64p[ix]; @@ -112,7 +112,7 @@ char * val; assert(ix == 0); - if (he->t != RPM_INT64_TYPE) { + if (he->t != RPM_UINT64_TYPE) { val = xstrdup(_("(invalid type)")); } else { uint64_t anint = he->p.ui64p[0]; @@ -134,7 +134,7 @@ char * val; assert(ix == 0); - if (he->t != RPM_INT64_TYPE) { + if (he->t != RPM_UINT64_TYPE) { val = xstrdup(_("(invalid type)")); } else { char buf[15]; @@ -201,10 +201,10 @@ break; case RPM_NULL_TYPE: case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: - case RPM_INT16_TYPE: - case RPM_INT32_TYPE: - case RPM_INT64_TYPE: + case RPM_UINT8_TYPE: + case RPM_UINT16_TYPE: + case RPM_UINT32_TYPE: + case RPM_UINT64_TYPE: case RPM_I18NSTRING_TYPE: default: return xstrdup(_("(invalid type)")); @@ -340,7 +340,7 @@ if (_jbj) fprintf(stderr, " XML: tag %s(%d) %d %p[%d:%d] free %d\n", tagName(he->tag), he->tag, he->t, he->p.ptr, he->ix, he->c, he->freeData); assert(ix == 0); -assert(he->t == RPM_STRING_TYPE || he->t == RPM_INT64_TYPE || he->t == RPM_BIN_TYPE); +assert(he->t == RPM_STRING_TYPE || he->t == RPM_UINT64_TYPE || he->t == RPM_BIN_TYPE); switch (he->t) { case RPM_STRING_ARRAY_TYPE: s = data.argv[ix]; @@ -374,16 +374,16 @@ } break; /[EMAIL PROTECTED] [EMAIL PROTECTED]/ case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: anint = data.ui8p[ix]; break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: anint = data.ui16p[ix]; /* XXX note unsigned */ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: anint = data.ui32p[ix]; break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: anint = data.ui64p[ix]; break; case RPM_NULL_TYPE: @@ -508,7 +508,7 @@ if (_jbj) fprintf(stderr, "YAML: tag %s(%d) %d %p[%d:%d] free %d\n", tagName(he->tag), he->tag, he->t, he->p.ptr, he->ix, he->c, he->freeData); assert(ix == 0); -assert(he->t == RPM_STRING_TYPE || he->t == RPM_INT64_TYPE || he->t == RPM_BIN_TYPE); +assert(he->t == RPM_STRING_TYPE || he->t == RPM_UINT64_TYPE || he->t == RPM_BIN_TYPE); switch (he->t) { case RPM_STRING_ARRAY_TYPE: case RPM_I18NSTRING_TYPE: @@ -567,16 +567,16 @@ } break; /[EMAIL PROTECTED] [EMAIL PROTECTED]/ case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: anint = data.ui8p[ix]; break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: anint = data.ui16p[ix]; /* XXX note unsigned */ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: anint = data.ui32p[ix]; break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: anint = data.ui64p[ix]; break; case RPM_NULL_TYPE: @@ -752,7 +752,7 @@ char * val; assert(ix == 0); - if (he->t != RPM_INT64_TYPE) { + if (he->t != RPM_UINT64_TYPE) { val = xstrdup(_("(invalid type)")); } else { uint64_t anint = data.ui64p[ix]; @@ -845,7 +845,7 @@ return 0; _he->tag = he->tag; - _he->t = RPM_INT32_TYPE; + _he->t = RPM_UINT32_TYPE; _he->p.ui32p = NULL; _he->c = 1; _he->freeData = -1; @@ -1179,7 +1179,7 @@ fileSystem, internalState @*/ { he->tag = RPMTAG_DBINSTANCE; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = xmalloc(sizeof(*he->p.ui32p)); he->p.ui32p[0] = headerGetInstance(h); he->freeData = 1; @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.c ============================================================================ $ cvs diff -u -r1.113 -r1.114 header.c --- rpm/rpmdb/header.c 3 Nov 2007 23:44:03 -0000 1.113 +++ rpm/rpmdb/header.c 8 Nov 2007 15:15:40 -0000 1.114 @@ -63,10 +63,10 @@ static int typeSizes[16] = { 0, /*!< RPM_NULL_TYPE */ 1, /*!< RPM_CHAR_TYPE */ - 1, /*!< RPM_INT8_TYPE */ - 2, /*!< RPM_INT16_TYPE */ - 4, /*!< RPM_INT32_TYPE */ - 8, /*!< RPM_INT64_TYPE */ + 1, /*!< RPM_UINT8_TYPE */ + 2, /*!< RPM_UINT16_TYPE */ + 4, /*!< RPM_UINT32_TYPE */ + 8, /*!< RPM_UINT64_TYPE */ -1, /*!< RPM_STRING_TYPE */ 1, /*!< RPM_BIN_TYPE */ -1, /*!< RPM_STRING_ARRAY_TYPE */ @@ -602,7 +602,7 @@ /* Perform endian conversions */ switch (ntohl(pe->type)) { - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: { int_64 * it = (int_64 *)t; int_32 b[2]; for (; ie.info.count > 0; ie.info.count--, it += 1) { @@ -615,7 +615,7 @@ } t = (unsigned char *) it; } /[EMAIL PROTECTED]@*/ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: { int_32 * it = (int_32 *)t; for (; ie.info.count > 0; ie.info.count--, it += 1) { if (dataEnd && ((unsigned char *)it) >= dataEnd) @@ -624,7 +624,7 @@ } t = (unsigned char *) it; } /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: { int_16 * it = (int_16 *) t; for (; ie.info.count > 0; ie.info.count--, it += 1) { if (dataEnd && ((unsigned char *)it) >= dataEnd) @@ -867,7 +867,7 @@ /* copy data w/ endian conversions */ switch (entry->info.type) { - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: { int_32 b[2]; count = entry->info.count; src = entry->data; @@ -883,7 +883,7 @@ } } /[EMAIL PROTECTED]@*/ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: count = entry->info.count; src = entry->data; while (count--) { @@ -895,7 +895,7 @@ } /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: count = entry->info.count; src = entry->data; while (count--) { @@ -1908,16 +1908,16 @@ he->freeData = 1; /* XXX RPM_BIN_TYPE is malloc'd */ /[EMAIL PROTECTED]@*/ case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: nb = he->c * sizeof(*he->p.ui8p); break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: nb = he->c * sizeof(*he->p.ui16p); break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: nb = he->c * sizeof(*he->p.ui32p); break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: nb = he->c * sizeof(*he->p.ui64p); break; case RPM_I18NSTRING_TYPE: @@ -2912,16 +2912,16 @@ return xstrdup(_("(not a number)")); break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: ival = he->p.ui8p[ix]; break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: ival = he->p.ui16p[ix]; /* XXX note unsigned. */ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: ival = he->p.ui32p[ix]; break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: ival = he->p.ui64p[ix]; break; case RPM_STRING_TYPE: @@ -3010,7 +3010,7 @@ rpmTagData data = { .ptr = he->p.ptr }; char * val; - if (he->t != RPM_INT64_TYPE) { + if (he->t != RPM_UINT64_TYPE) { val = xstrdup(_("(not a number)")); } else { struct tm * tstruct; @@ -3065,12 +3065,12 @@ size_t nb; /* XXX one of these integer types is unnecessary. */ - if (he->t == RPM_INT32_TYPE) { + if (he->t == RPM_UINT32_TYPE) { nb = 20; val = xmalloc(nb); snprintf(val, nb, "%u", data.ui32p[0]); val[nb-1] = '\0'; - } else if (he->t == RPM_INT64_TYPE) { + } else if (he->t == RPM_UINT64_TYPE) { nb = 40; val = xmalloc(40); snprintf(val, nb, "%llu", data.ui64p[0]); @@ -3552,7 +3552,7 @@ if (tag->arrayCount) { countBuf = he->c; he = rpmheClean(he); - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &countBuf; he->c = 1; he->freeData = 0; @@ -3580,29 +3580,29 @@ vhe->ix = -1; break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: - case RPM_INT16_TYPE: - case RPM_INT32_TYPE: - case RPM_INT64_TYPE: + case RPM_UINT8_TYPE: + case RPM_UINT16_TYPE: + case RPM_UINT32_TYPE: + case RPM_UINT64_TYPE: switch (he->t) { default: assert(0); /* XXX keep gcc quiet. */ break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: ival = he->p.ui8p[element]; break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: ival = he->p.ui16p[element]; /* XXX note unsigned. */ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: ival = he->p.ui32p[element]; break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: ival = he->p.ui64p[element]; break; } - vhe->t = RPM_INT64_TYPE; + vhe->t = RPM_UINT64_TYPE; vhe->p.ui64p = &ival; vhe->c = he->c; /* XXX TODO: force array representation? */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.h ============================================================================ $ cvs diff -u -r1.57 -r1.58 header.h --- rpm/rpmdb/header.h 3 Nov 2007 23:44:03 -0000 1.57 +++ rpm/rpmdb/header.h 8 Nov 2007 15:15:40 -0000 1.58 @@ -115,10 +115,10 @@ enum rpmTagType_e { RPM_NULL_TYPE = 0, RPM_CHAR_TYPE = 1, - RPM_INT8_TYPE = 2, - RPM_INT16_TYPE = 3, - RPM_INT32_TYPE = 4, - RPM_INT64_TYPE = 5, + RPM_UINT8_TYPE = 2, + RPM_UINT16_TYPE = 3, + RPM_UINT32_TYPE = 4, + RPM_UINT64_TYPE = 5, RPM_STRING_TYPE = 6, RPM_BIN_TYPE = 7, RPM_STRING_ARRAY_TYPE = 8, @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header_internal.c ============================================================================ $ cvs diff -u -r1.11 -r1.12 header_internal.c --- rpm/rpmdb/header_internal.c 17 Oct 2007 00:32:26 -0000 1.11 +++ rpm/rpmdb/header_internal.c 8 Nov 2007 15:15:40 -0000 1.12 @@ -16,10 +16,10 @@ int rpm_typeAlign[16] = { 1, /*!< RPM_NULL_TYPE */ 1, /*!< RPM_CHAR_TYPE */ - 1, /*!< RPM_INT8_TYPE */ - 2, /*!< RPM_INT16_TYPE */ - 4, /*!< RPM_INT32_TYPE */ - 8, /*!< RPM_INT64_TYPE */ + 1, /*!< RPM_UINT8_TYPE */ + 2, /*!< RPM_UINT16_TYPE */ + 4, /*!< RPM_UINT32_TYPE */ + 8, /*!< RPM_UINT64_TYPE */ 1, /*!< RPM_STRING_TYPE */ 1, /*!< RPM_BIN_TYPE */ 1, /*!< RPM_STRING_ARRAY_TYPE */ @@ -109,16 +109,18 @@ case RPM_BIN_TYPE: type = "BIN"; /[EMAIL PROTECTED]@*/ break; - case RPM_INT8_TYPE: - type = "INT8"; + case RPM_UINT8_TYPE: + type = "UINT8"; /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: - type = "INT16"; + case RPM_UINT16_TYPE: + type = "UINT16"; /[EMAIL PROTECTED]@*/ break; - case RPM_INT32_TYPE: - type = "INT32"; + case RPM_UINT32_TYPE: + type = "UINT32"; + /[EMAIL PROTECTED]@*/ break; + case RPM_UINT64_TYPE: + type = "UINT64"; /[EMAIL PROTECTED]@*/ break; - /*case RPM_INT64_TYPE: type = "INT64"; break;*/ case RPM_STRING_TYPE: type = "STRING"; /[EMAIL PROTECTED]@*/ break; @@ -152,7 +154,7 @@ /* Print the data inline */ switch (p->info.type) { - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: while (c--) { fprintf(f, " Data: %.3d 0x%08x (%d)\n", ct++, (unsigned) *((int_32 *) dp), @@ -161,7 +163,7 @@ } /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: while (c--) { fprintf(f, " Data: %.3d 0x%04x (%d)\n", ct++, (unsigned) (*((int_16 *) dp) & 0xffff), @@ -169,7 +171,7 @@ dp += sizeof(int_16); } /[EMAIL PROTECTED]@*/ break; - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: while (c--) { fprintf(f, " Data: %.3d 0x%02x (%d)\n", ct++, (unsigned) (*((int_8 *) dp) & 0xff), @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/rpmdb.c ============================================================================ $ cvs diff -u -r1.199 -r1.200 rpmdb.c --- rpm/rpmdb/rpmdb.c 4 Nov 2007 18:10:20 -0000 1.199 +++ rpm/rpmdb/rpmdb.c 8 Nov 2007 15:15:40 -0000 1.200 @@ -2175,7 +2175,7 @@ ntags++; continue; } - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = xcalloc(1, sizeof(*he->p.ui32p)); he->c = 1; } @@ -2184,7 +2184,7 @@ while (1) { switch (he->t) { case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: for (j = 0; j < he->c; j++) { sprintf(numbuf, "%u", he->p.ui8p[j]); rc = mireRegexec(mire, numbuf); @@ -2192,7 +2192,7 @@ anymatch++; } /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: for (j = 0; j < he->c; j++) { sprintf(numbuf, "%u", he->p.ui16p[j]); rc = mireRegexec(mire, numbuf); @@ -2200,7 +2200,7 @@ anymatch++; } /[EMAIL PROTECTED]@*/ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: for (j = 0; j < he->c; j++) { sprintf(numbuf, "%u", he->p.ui32p[j]); rc = mireRegexec(mire, numbuf); @@ -2208,7 +2208,7 @@ anymatch++; } /[EMAIL PROTECTED]@*/ break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: for (j = 0; j < he->c; j++) { sprintf(numbuf, "%llu", he->p.ui64p[j]); rc = mireRegexec(mire, numbuf); @@ -2823,7 +2823,7 @@ if (rid != 0 && rid != -1) { uint32_t tid = rid; he->tag = RPMTAG_REMOVETID; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &tid; he->c = 1; xx = hae(h, he, 0); @@ -2936,19 +2936,19 @@ assert(0); /[EMAIL PROTECTED]@*/ break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: key->size = sizeof(*he->p.ui8p); /[EMAIL PROTECTED]@*/ key->data = he->p.ui8p + i; /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: key->size = sizeof(*he->p.ui16p); /[EMAIL PROTECTED]@*/ key->data = he->p.ui16p + i; /[EMAIL PROTECTED]@*/ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: key->size = sizeof(*he->p.ui32p); /[EMAIL PROTECTED]@*/ key->data = he->p.ui32p + i; /[EMAIL PROTECTED]@*/ break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: key->size = sizeof(*he->p.ui64p); /[EMAIL PROTECTED]@*/ key->data = he->p.ui64p + i; /[EMAIL PROTECTED]@*/ break; @@ -3138,7 +3138,7 @@ if (iid != 0 && iid != -1) { uint32_t tid = iid; he->tag = RPMTAG_INSTALLTID; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &tid; he->c = 1; if (!headerIsEntry(h, he->tag)) @@ -3149,7 +3149,7 @@ if (!headerIsEntry(h, RPMTAG_PACKAGECOLOR)) { uint32_t hcolor = hGetColor(h); he->tag = RPMTAG_PACKAGECOLOR; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &hcolor; he->c = 1; xx = hae(h, he, 0); @@ -3427,19 +3427,19 @@ assert(0); /[EMAIL PROTECTED]@*/ break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: key->size = sizeof(*he->p.ui8p); /[EMAIL PROTECTED]@*/ key->data = he->p.ui8p + i; /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: key->size = sizeof(*he->p.ui16p); /[EMAIL PROTECTED]@*/ key->data = he->p.ui16p + i; /[EMAIL PROTECTED]@*/ break; - case RPM_INT32_TYPE: + case RPM_UINT32_TYPE: key->size = sizeof(*he->p.ui32p); /[EMAIL PROTECTED]@*/ key->data = he->p.ui32p + i; /[EMAIL PROTECTED]@*/ break; - case RPM_INT64_TYPE: + case RPM_UINT64_TYPE: key->size = sizeof(*he->p.ui64p); /[EMAIL PROTECTED]@*/ key->data = he->p.ui64p + i; /[EMAIL PROTECTED]@*/ break; @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/signature.c ============================================================================ $ cvs diff -u -r1.15 -r1.16 signature.c --- rpm/rpmdb/signature.c 4 Nov 2007 17:59:56 -0000 1.15 +++ rpm/rpmdb/signature.c 8 Nov 2007 15:15:40 -0000 1.16 @@ -664,7 +664,7 @@ break; pktlen = st.st_size; he->tag = sigTag; - he->t = RPM_INT32_TYPE; + he->t = RPM_UINT32_TYPE; he->p.ui32p = &pktlen; he->c = 1; xx = hae(sigh, he, 0); @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/sqlite.c ============================================================================ $ cvs diff -u -r1.18 -r1.19 sqlite.c --- rpm/rpmdb/sqlite.c 16 Oct 2007 16:23:13 -0000 1.18 +++ rpm/rpmdb/sqlite.c 8 Nov 2007 15:15:40 -0000 1.19 @@ -530,22 +530,22 @@ /[EMAIL PROTECTED] [EMAIL PROTECTED]/ /[EMAIL PROTECTED]@*/ break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: + case RPM_UINT8_TYPE: { unsigned char i; /[EMAIL PROTECTED]@*/ assert(key->size == sizeof(unsigned char)); assert(swapped == 0); /* Byte swap?! */ memcpy(&i, key->data, sizeof(i)); rc = sqlite3_bind_int(scp->pStmt, pos, i); } /[EMAIL PROTECTED]@*/ break; - case RPM_INT16_TYPE: + case RPM_UINT16_TYPE: { unsigned short i; /[EMAIL PROTECTED]@*/ assert(key->size == sizeof(int_16)); assert(swapped == 0); /* Byte swap?! */ memcpy(&i, key->data, sizeof(i)); rc = sqlite3_bind_int(scp->pStmt, pos, i); } /[EMAIL PROTECTED]@*/ break; - case RPM_INT32_TYPE: -/* case RPM_INT64_TYPE: */ + case RPM_UINT32_TYPE: + case RPM_UINT64_TYPE: default: { unsigned int i; /[EMAIL PROTECTED]@*/ assert(key->size == sizeof(int_32)); @@ -747,10 +747,10 @@ keytype = "blob UNIQUE"; /[EMAIL PROTECTED]@*/ break; case RPM_CHAR_TYPE: - case RPM_INT8_TYPE: - case RPM_INT16_TYPE: - case RPM_INT32_TYPE: -/* case RPM_INT64_TYPE: */ + case RPM_UINT8_TYPE: + case RPM_UINT16_TYPE: + case RPM_UINT32_TYPE: + case RPM_UINT64_TYPE: keytype = "int UNIQUE"; /[EMAIL PROTECTED]@*/ break; case RPM_STRING_TYPE: @@ . patch -p0 <<'@@ .' Index: rpm/tools/rpmcache.c ============================================================================ $ cvs diff -u -r2.21 -r2.22 rpmcache.c --- rpm/tools/rpmcache.c 19 Oct 2007 00:36:47 -0000 2.21 +++ rpm/tools/rpmcache.c 8 Nov 2007 15:15:41 -0000 2.22 @@ -44,8 +44,8 @@ typedef struct Item_s { const char * path; - int_32 size; - int_32 mtime; + uint32_t size; + uint32_t mtime; rpmds this; Header h; } * Item; @@ -105,9 +105,10 @@ static int ftsCacheUpdate(rpmts ts) { - HGE_t hge = (HGE_t)headerGetExtension; + HGE_t hge = headerGetExtension; + HAE_t hae = headerAddExtension; HE_t he = memset(alloca(sizeof(*he)), 0, sizeof(*he)); - int_32 tid = rpmtsGetTid(ts); + uint32_t tid = rpmtsGetTid(ts); rpmdbMatchIterator mi; unsigned char * md5; int rc = 0; @@ -148,17 +149,40 @@ } /* --- Add cache tags to new cache header. */ - rc = headerAddOrAppendEntry(ip->h, RPMTAG_CACHECTIME, - RPM_INT32_TYPE, &tid, 1); + he->tag = RPMTAG_CACHECTIME; + he->t = RPM_UINT32_TYPE; + he->p.ui32p = &tid; + he->c = 1; + he->append = 1; + rc = hae(ip->h, he, 0); + he->append = 0; if (rc != 1) break; - rc = headerAddOrAppendEntry(ip->h, RPMTAG_CACHEPKGPATH, - RPM_STRING_ARRAY_TYPE, &ip->path, 1); + + he->tag = RPMTAG_CACHEPKGPATH; + he->t = RPM_STRING_ARRAY_TYPE; + he->p.argv = &ip->path; + he->c = 1; + he->append = 1; + rc = hae(ip->h, he, 0); + he->append = 0; if (rc != 1) break; - rc = headerAddOrAppendEntry(ip->h, RPMTAG_CACHEPKGSIZE, - RPM_INT32_TYPE, &ip->size, 1); + + he->tag = RPMTAG_CACHEPKGSIZE; + he->t = RPM_UINT32_TYPE; + he->p.ui32p = &ip->size; + he->c = 1; + he->append = 1; + rc = hae(ip->h, he, 0); + he->append = 0; if (rc != 1) break; - rc = headerAddOrAppendEntry(ip->h, RPMTAG_CACHEPKGMTIME, - RPM_INT32_TYPE, &ip->mtime, 1); + + he->tag = RPMTAG_CACHEPKGMTIME; + he->t = RPM_UINT32_TYPE; + he->p.ui32p = &ip->mtime; + he->c = 1; + he->append = 1; + rc = hae(ip->h, he, 0); + he->append = 0; if (rc != 1) break; /* --- Add new cache header to database. */ @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org