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: 16-Oct-2007 23:02:03 Branch: HEAD Handle: 2007101622020300 Modified files: rpm/rpmdb hdrfmt.c header.c header.h rpmdb.c Log: - jbj: start drilling hRET_t. Summary: Revision Changes Path 1.13 +10 -9 rpm/rpmdb/hdrfmt.c 1.84 +8 -8 rpm/rpmdb/header.c 1.36 +1 -1 rpm/rpmdb/header.h 1.186 +11 -3 rpm/rpmdb/rpmdb.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmdb/hdrfmt.c ============================================================================ $ cvs diff -u -r1.12 -r1.13 hdrfmt.c --- rpm/rpmdb/hdrfmt.c 16 Oct 2007 20:16:16 -0000 1.12 +++ rpm/rpmdb/hdrfmt.c 16 Oct 2007 21:02:03 -0000 1.13 @@ -82,7 +82,7 @@ /[EMAIL PROTECTED]@*/ int element) /[EMAIL PROTECTED] maxRead(data) >= 0 @*/ { - const int_32 * item = (const int_32 *) data; /* NOCAST */ + const int_32 * item = (*data).i32p; char * val; if (type != RPM_INT32_TYPE) @@ -206,14 +206,14 @@ case RPM_OPENPGP_TYPE: case RPM_ASN1_TYPE: /* XXX WRONG */ case RPM_BIN_TYPE: - s = (const unsigned char *) data; /* NOCAST */ + s = (*data).ui8p; /* XXX HACK ALERT: element field abused as no. bytes of binary data. */ ns = element; atype = PGPARMOR_SIGNATURE; /* XXX check pkt for signature */ break; case RPM_STRING_TYPE: case RPM_STRING_ARRAY_TYPE: - enc = (const char *) data; /* NOCAST */ + enc = (*data).str; s = NULL; ns = 0; /[EMAIL PROTECTED]@*/ @@ -371,7 +371,7 @@ switch (type) { case RPM_I18NSTRING_TYPE: case RPM_STRING_TYPE: - s = (const char *) data; /* NOCAST */ + s = (*data).str; xtag = "string"; /* XXX Force utf8 strings. */ s = xstrdup(s); @@ -538,7 +538,7 @@ case RPM_I18NSTRING_TYPE: case RPM_STRING_TYPE: xx = 0; - s = (const char *) data; /* NOCAST */ + s = (*data).str; if (strchr("[", s[0])) /* leading [ */ xx = 1; if (xx == 0) @@ -571,7 +571,7 @@ } /* XXX Force utf8 strings. */ - s = xstrdup((const char *)data); /* NOCAST */ + s = xstrdup((*data).str); s = xstrtolocale(s); freeit = 1; break; @@ -867,7 +867,8 @@ static int triggercondsTag(Header h, HE_t he) /[EMAIL PROTECTED] he @*/ { - int_32 * indices, * flags; + hRET_t flags; + int_32 * indices; char ** names, ** versions; int numNames, numScripts; const char ** conds; @@ -904,9 +905,9 @@ /[EMAIL PROTECTED]@*/ continue; item = xmalloc(strlen(names[j]) + strlen(versions[j]) + 20); - if (flags[j] & RPMSENSE_SENSEMASK) { + if (flags.i32p[j] & RPMSENSE_SENSEMASK) { buf[0] = '%', buf[1] = '\0'; - flagsStr = depflagsFormat(RPM_INT32_TYPE, (hPTR_t) flags, buf, 0, j); /* NOCAST */ + flagsStr = depflagsFormat(RPM_INT32_TYPE, &flags, buf, 0, j); sprintf(item, "%s %s %s", names[j], flagsStr, versions[j]); flagsStr = _free(flagsStr); } else @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.c ============================================================================ $ cvs diff -u -r1.83 -r1.84 header.c --- rpm/rpmdb/header.c 16 Oct 2007 20:16:16 -0000 1.83 +++ rpm/rpmdb/header.c 16 Oct 2007 21:02:03 -0000 1.84 @@ -2099,7 +2099,7 @@ entry->info.type = type; entry->info.count = c; entry->info.offset = 0; - entry->data = data; + entry->data = (void *) (*data).ptr; /* NOCAST */ entry->length = length; if (h->indexUsed > 0 && tag < h->index[h->indexUsed-1].info.tag) @@ -2374,7 +2374,7 @@ entry->info.count = c; entry->info.type = type; - entry->data = data; + entry->data = (void *) (*data).ptr; /* NOCAST */ entry->length = length; if (ENTRY_IN_REGION(entry)) { @@ -3212,7 +3212,7 @@ char buf[20]; unsigned int intVal; uint_64 llVal; - const char ** strarray; + hRET_t strarray; rpmTagCount countBuf; memset(buf, 0, sizeof(buf)); @@ -3270,19 +3270,19 @@ if (he_p.ptr) switch (he_t) { case RPM_STRING_ARRAY_TYPE: - strarray = he_p.argv; + strarray.argv = he_p.argv; if (tag->fmt) - val = tag->fmt(RPM_STRING_TYPE, (hPTR_t) strarray[element], buf, tag->pad, (he_c > 1 ? element : -1)); /* NOCAST */ + val = tag->fmt(RPM_STRING_TYPE, (hPTR_t) strarray.argv[element], buf, tag->pad, (he_c > 1 ? element : -1)); /* NOCAST */ if (val) { need = strlen(val); } else { - need = strlen(strarray[element]) + tag->pad + 20; + need = strlen(strarray.argv[element]) + tag->pad + 20; val = xmalloc(need+1); strcat(buf, "s"); /[EMAIL PROTECTED]@*/ - sprintf(val, buf, strarray[element]); + sprintf(val, buf, strarray.argv[element]); /[EMAIL PROTECTED]@*/ } @@ -3932,7 +3932,7 @@ sprintf(result, formatPrefix, *((int_64 *) data)); /[EMAIL PROTECTED]@*/ } else { - buf = alloca(strlen((const char *)data) + padding + 2); /* NOCAST */ + buf = alloca(strlen((*data).str) + padding + 2); strcat(formatPrefix, "s"); /[EMAIL PROTECTED]@*/ sprintf(buf, formatPrefix, data); @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/header.h ============================================================================ $ cvs diff -u -r1.35 -r1.36 header.h --- rpm/rpmdb/header.h 16 Oct 2007 20:16:16 -0000 1.35 +++ rpm/rpmdb/header.h 16 Oct 2007 21:02:03 -0000 1.36 @@ -136,7 +136,7 @@ /** \ingroup header */ -typedef const void * rpmTagData; +typedef const hRET_t rpmTagData; /** \ingroup header */ @@ . patch -p0 <<'@@ .' Index: rpm/rpmdb/rpmdb.c ============================================================================ $ cvs diff -u -r1.185 -r1.186 rpmdb.c --- rpm/rpmdb/rpmdb.c 16 Oct 2007 20:16:16 -0000 1.185 +++ rpm/rpmdb/rpmdb.c 16 Oct 2007 21:02:03 -0000 1.186 @@ -3135,14 +3135,22 @@ #endif if (iid != 0 && iid != -1) { int_32 tid = iid; - if (!headerIsEntry(h, RPMTAG_INSTALLTID)) - xx = hae(h, RPMTAG_INSTALLTID, RPM_INT32_TYPE, (hPTR_t)&tid, 1); /* NOCAST */ + he->tag = RPMTAG_INSTALLTID; + he_t = RPM_INT32_TYPE; + he_p.i32p = &tid; + he_c = 1; + if (!headerIsEntry(h, he->tag)) + xx = hae(h, he->tag, he_t, he_p, he_c); } /* Add the package color if not present. */ if (!headerIsEntry(h, RPMTAG_PACKAGECOLOR)) { uint32_t hcolor = hGetColor(h); - xx = hae(h, RPMTAG_PACKAGECOLOR, RPM_INT32_TYPE, (hPTR_t) &hcolor, 1); /* NOCAST */ + he->tag = RPMTAG_PACKAGECOLOR; + he_t = RPM_INT32_TYPE; + he_p.ui32p = &hcolor; + he_c = 1; + xx = hae(h, he->tag, he_t, he_p, he_c); } #if defined(SUPPORT_RPMV3_BASENAMES_HACKS) @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org