RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  j...@rpm5.org
  Module: rpm                              Date:   25-Apr-2012 20:28:19
  Branch: rpm-5_4                          Handle: 2012042518281900

  Modified files:           (Branch: rpm-5_4)
    rpm/lib                 query.c rpminstall.c rpmrollback.c

  Log:
    - c++: hide the C -> C++ typedef'd enum flags issue more carefully.

  Summary:
    Revision    Changes     Path
    2.216.2.4   +57 -17     rpm/lib/query.c
    1.229.2.5   +55 -17     rpm/lib/rpminstall.c
    1.44.4.4    +38 -11     rpm/lib/rpmrollback.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/lib/query.c
  ============================================================================
  $ cvs diff -u -r2.216.2.3 -r2.216.2.4 query.c
  --- rpm/lib/query.c   19 Apr 2012 17:26:06 -0000      2.216.2.3
  +++ rpm/lib/query.c   25 Apr 2012 18:28:19 -0000      2.216.2.4
  @@ -35,6 +35,30 @@
   
   /*@access rpmts @*/  /* XXX cast */
   
  +#ifdef __cplusplus
  +
  +#define FF_ISSET(_fflags, _FLAG)     ((_fflags) & (RPMFILE_##_FLAG))
  +
  +#define QVA_ISSET(_qvaflags, _FLAG)  ((_qvaflags) & (QUERY_##_FLAG))
  +
  +#define VSF_ISSET(_vsflags, _FLAG)   ((_vsflags) & (RPMVSF_##_FLAG))
  +#define VSF_SET(_vsflags, _FLAG)     \
  +     (*((unsigned *)&(_vsflags)) |= (RPMVSF_##_FLAG))
  +#define VSF_CLR(_vsflags, _FLAG)     \
  +     (*((unsigned *)&(_vsflags)) &= ~(RPMVSF_##_FLAG))
  +
  +#else        /* __cplusplus */
  +
  +#define FF_ISSET(_fflags, _FLAG)     ((_fflags) & (RPMFILE_##_FLAG))
  +
  +#define QVA_ISSET(_qvaflags, _FLAG)  ((_qvaflags) & (QUERY_##_FLAG))
  +
  +#define VSF_ISSET(_vsflags, _FLAG)   ((_vsflags) & (RPMVSF_##_FLAG))
  +#define VSF_SET(_vsflags, _FLAG)     (_vsflags) |= (RPMVSF_##_FLAG)
  +#define VSF_CLR(_vsflags, _FLAG)     (_vsflags) &= ~(RPMVSF_##_FLAG)
  +
  +#endif       /* __cplusplus */
  +
   /**
    */
   static void printFileInfo(char * te, const char * name,
  @@ -215,7 +239,7 @@
        }
       }
   
  -    if (!(qva->qva_flags & QUERY_FOR_LIST))
  +    if (!QVA_ISSET(qva->qva_flags, FOR_LIST))
        goto exit;
   
       fi = rpmfiNew(ts, h, RPMTAG_BASENAMES, scareMem);
  @@ -269,23 +293,23 @@
   assert(fdigest != NULL);
   
        /* If querying only docs, skip non-doc files. */
  -     if ((qva->qva_flags & QUERY_FOR_DOCS) && !(fflags & RPMFILE_DOC))
  +     if (QVA_ISSET(qva->qva_flags, FOR_DOCS) && !FF_ISSET(fflags, DOC))
            continue;
   
        /* If querying only configs, skip non-config files. */
  -     if ((qva->qva_flags & QUERY_FOR_CONFIG) && !(fflags & RPMFILE_CONFIG))
  +     if (QVA_ISSET(qva->qva_flags, FOR_CONFIG) && !FF_ISSET(fflags, CONFIG))
            continue;
   
        /* If not querying %config, skip config files. */
  -     if ((qva->qva_fflags & RPMFILE_CONFIG) && (fflags & RPMFILE_CONFIG))
  +     if (FF_ISSET(qva->qva_fflags, CONFIG) && FF_ISSET(fflags, CONFIG))
            continue;
   
        /* If not querying %doc, skip doc files. */
  -     if ((qva->qva_fflags & RPMFILE_DOC) && (fflags & RPMFILE_DOC))
  +     if (FF_ISSET(qva->qva_fflags, DOC) && FF_ISSET(fflags, DOC))
            continue;
   
        /* If not querying %ghost, skip ghost files. */
  -     if ((qva->qva_fflags & RPMFILE_GHOST) && (fflags & RPMFILE_GHOST))
  +     if (FF_ISSET(qva->qva_fflags, GHOST) && FF_ISSET(fflags, GHOST))
            continue;
   
        /* Insure space for header derived data */
  @@ -305,7 +329,7 @@
        if (!rpmIsVerbose() && prefix)
            te = stpcpy(te, prefix);
   
  -     if (qva->qva_flags & QUERY_FOR_STATE) {
  +     if (QVA_ISSET(qva->qva_flags, FOR_STATE)) {
            switch (fstate) {
            case RPMFILE_STATE_NORMAL:
                te = stpcpy(te, _("normal        "));
  @@ -332,7 +356,7 @@
            }
        }
   
  -     if (qva->qva_flags & QUERY_FOR_DUMPFILES) {
  +     if (QVA_ISSET(qva->qva_flags, FOR_DUMPFILES)) {
            sprintf(te, "%s %d %d %s 0%o ",
                                fn, (int)fsize, fmtime, fdigest, fmode);
            te += strlen(te);
  @@ -347,8 +371,8 @@
            }
   
            sprintf(te, " %s %s %u ", 
  -                              fflags & RPMFILE_CONFIG ? "1" : "0",
  -                              fflags & RPMFILE_DOC ? "1" : "0",
  +                              FF_ISSET(fflags, CONFIG) ? "1" : "0",
  +                              FF_ISSET(fflags, DOC) ? "1" : "0",
                                 frdev);
            te += strlen(te);
   
  @@ -892,7 +916,13 @@
        qva->qva_showPackage = showQueryPackage;
   
       /* If --queryformat unspecified, then set default now. */
  -    if (!(qva->qva_flags & _QUERY_FOR_BITS) && qva->qva_queryFormat == NULL) 
{
  +    if (qva->qva_queryFormat == NULL
  +     && !QVA_ISSET(qva->qva_flags, FOR_LIST)
  +     && !QVA_ISSET(qva->qva_flags, FOR_STATE)
  +     && !QVA_ISSET(qva->qva_flags, FOR_DOCS)
  +     && !QVA_ISSET(qva->qva_flags, FOR_CONFIG)
  +     && !QVA_ISSET(qva->qva_flags, FOR_DUMPFILES)
  +    ) {
        qva->qva_queryFormat = rpmExpand("%{?_query_all_fmt}\n", NULL);
        if (!(qva->qva_queryFormat != NULL && *qva->qva_queryFormat != '\0')) {
            qva->qva_queryFormat = _free(qva->qva_queryFormat);
  @@ -902,12 +932,22 @@
   
       vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_query}");
       vsflags = (rpmVSFlags) 0;        /* XXX FIXME: ignore default disablers. 
*/
  -    if (qva->qva_flags & VERIFY_DIGEST)
  -     *((unsigned *)&vsflags) |= _RPMVSF_NODIGESTS;
  -    if (qva->qva_flags & VERIFY_SIGNATURE)
  -     *((unsigned *)&vsflags) |= _RPMVSF_NOSIGNATURES;
  -    if (qva->qva_flags & VERIFY_HDRCHK)
  -     *((unsigned *)&vsflags) |= RPMVSF_NOHDRCHK;
  +    if (!QVA_ISSET(qva->qva_flags, DIGEST)) {
  +     VSF_SET(vsflags, NOSHA1HEADER);
  +     VSF_SET(vsflags, NOMD5HEADER);
  +     VSF_SET(vsflags, NOSHA1);
  +     VSF_SET(vsflags, NOMD5);
  +    }
  +    if (!QVA_ISSET(qva->qva_flags, SIGNATURE)) {
  +     VSF_SET(vsflags, NODSAHEADER);
  +     VSF_SET(vsflags, NORSAHEADER);
  +     VSF_SET(vsflags, NODSA);
  +     VSF_SET(vsflags, NORSA);
  +    }
  +    if (!QVA_ISSET(qva->qva_flags, HDRCHK)) {
  +     VSF_SET(vsflags, NOHDRCHK);
  +    }
  +    VSF_CLR(vsflags, NEEDPAYLOAD);   /* XXX needed? */
   
       odepFlags = rpmtsSetDFlags(ts, depFlags);
       otransFlags = rpmtsSetFlags(ts, transFlags);
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpminstall.c
  ============================================================================
  $ cvs diff -u -r1.229.2.4 -r1.229.2.5 rpminstall.c
  --- rpm/lib/rpminstall.c      15 Apr 2012 21:20:58 -0000      1.229.2.4
  +++ rpm/lib/rpminstall.c      25 Apr 2012 18:28:19 -0000      1.229.2.5
  @@ -37,9 +37,26 @@
   /*@access rpmgi @*/  /* XXX gi->h */
   /*@access fnpyKey @*/        /* XXX cast */
   
  -
   #ifdef __cplusplus
  +
  +#define QVA_ISSET(_qvaflags, _FLAG)  ((_qvaflags) & (VERIFY_##_FLAG))
  +
  +#define VSF_ISSET(_vsflags, _FLAG)   ((_vsflags) & (RPMVSF_##_FLAG))
  +#define VSF_SET(_vsflags, _FLAG)     \
  +     (*((unsigned *)&(_vsflags)) |= (RPMVSF_##_FLAG))
  +#define VSF_CLR(_vsflags, _FLAG)     \
  +     (*((unsigned *)&(_vsflags)) &= ~(RPMVSF_##_FLAG))
  +
   GENfree(const void **)
  +
  +#else        /* __cplusplus */
  +
  +#define QVA_ISSET(_qvaflags, _FLAG)  ((_qvaflags) & (VERIFY_##_FLAG))
  +
  +#define VSF_ISSET(_vsflags, _FLAG)   ((_vsflags) & (RPMVSF_##_FLAG))
  +#define VSF_SET(_vsflags, _FLAG)     (_vsflags) |= (RPMVSF_##_FLAG)
  +#define VSF_CLR(_vsflags, _FLAG)     (_vsflags) &= ~(RPMVSF_##_FLAG)
  +
   #endif       /* __cplusplus */
   
   /*@unchecked@*/
  @@ -548,13 +565,23 @@
       else
        vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_install}");
       vsflags = (rpmVSFlags) 0;        /* XXX FIXME: ignore default disablers. 
*/
  -    if (ia->qva_flags & VERIFY_DIGEST)
  -     vsflags = (rpmVSFlags) (vsflags | _RPMVSF_NODIGESTS);
  -    if (ia->qva_flags & VERIFY_SIGNATURE)
  -     vsflags = (rpmVSFlags) (vsflags | _RPMVSF_NOSIGNATURES);
  -    if (ia->qva_flags & VERIFY_HDRCHK)
  -     vsflags = (rpmVSFlags) (vsflags | RPMVSF_NOHDRCHK);
  -    ovsflags = rpmtsSetVSFlags(ts, (rpmVSFlags)(vsflags | 
RPMVSF_NEEDPAYLOAD));
  +    if (!QVA_ISSET(ia->qva_flags, DIGEST)) {
  +     VSF_SET(vsflags, NOSHA1HEADER);
  +     VSF_SET(vsflags, NOMD5HEADER);
  +     VSF_SET(vsflags, NOSHA1);
  +     VSF_SET(vsflags, NOMD5);
  +    }
  +    if (!QVA_ISSET(ia->qva_flags, SIGNATURE)) {
  +     VSF_SET(vsflags, NODSAHEADER);
  +     VSF_SET(vsflags, NORSAHEADER);
  +     VSF_SET(vsflags, NODSA);
  +     VSF_SET(vsflags, NORSA);
  +    }
  +    if (!QVA_ISSET(ia->qva_flags, HDRCHK)) {
  +     VSF_SET(vsflags, NOHDRCHK);
  +    }
  +    VSF_SET(vsflags, NEEDPAYLOAD);
  +    ovsflags = rpmtsSetVSFlags(ts, vsflags);
   
       {        int notifyFlags;
        notifyFlags = ia->installInterfaceFlags | (rpmIsVerbose() ? 
INSTALL_LABEL : 0 );
  @@ -752,12 +779,22 @@
   
       vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_erase}");
       vsflags = (rpmVSFlags) 0;        /* XXX FIXME: ignore default disablers. 
*/
  -    if (ia->qva_flags & VERIFY_DIGEST)
  -     vsflags = (rpmVSFlags) (vsflags | _RPMVSF_NODIGESTS);
  -    if (ia->qva_flags & VERIFY_SIGNATURE)
  -     vsflags = (rpmVSFlags) (vsflags | _RPMVSF_NOSIGNATURES);
  -    if (ia->qva_flags & VERIFY_HDRCHK)
  -     vsflags = (rpmVSFlags) (vsflags | RPMVSF_NOHDRCHK);
  +    if (!QVA_ISSET(ia->qva_flags, DIGEST)) {
  +     VSF_SET(vsflags, NOSHA1HEADER);
  +     VSF_SET(vsflags, NOMD5HEADER);
  +     VSF_SET(vsflags, NOSHA1);
  +     VSF_SET(vsflags, NOMD5);
  +    }
  +    if (!QVA_ISSET(ia->qva_flags, SIGNATURE)) {
  +     VSF_SET(vsflags, NODSAHEADER);
  +     VSF_SET(vsflags, NORSAHEADER);
  +     VSF_SET(vsflags, NODSA);
  +     VSF_SET(vsflags, NORSA);
  +    }
  +    if (!QVA_ISSET(ia->qva_flags, HDRCHK)) {
  +     VSF_SET(vsflags, NOHDRCHK);
  +    }
  +    VSF_CLR(vsflags, NEEDPAYLOAD);   /* XXX needed? */
       ovsflags = rpmtsSetVSFlags(ts, vsflags);
   
       if (rpmExpandNumeric("%{?_repackage_all_erasures}"))
  @@ -855,9 +892,10 @@
        fprintf(stdout, _("Installing %s\n"), arg);
   
       {        
  -     rpmVSFlags nvsflags = (rpmVSFlags)
  -             (rpmtsVSFlags(ts) | RPMVSF_NEEDPAYLOAD);
  -     rpmVSFlags ovsflags = rpmtsSetVSFlags(ts, nvsflags);
  +     rpmVSFlags nvsflags, ovsflags;
  +     nvsflags = rpmtsVSFlags(ts);
  +     VSF_SET(nvsflags, NEEDPAYLOAD);
  +     ovsflags = rpmtsSetVSFlags(ts, nvsflags);
        rc = rpmInstallSourcePackage(ts, fd, specFilePtr, cookie);
        ovsflags = rpmtsSetVSFlags(ts, ovsflags);
       }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmrollback.c
  ============================================================================
  $ cvs diff -u -r1.44.4.3 -r1.44.4.4 rpmrollback.c
  --- rpm/lib/rpmrollback.c     15 Apr 2012 21:20:58 -0000      1.44.4.3
  +++ rpm/lib/rpmrollback.c     25 Apr 2012 18:28:19 -0000      1.44.4.4
  @@ -36,8 +36,26 @@
   /*@access IDT @*/
   
   #ifdef __cplusplus
  +
  +#define QVA_ISSET(_qvaflags, _FLAG)  ((_qvaflags) & (VERIFY_##_FLAG))
  +
  +#define VSF_ISSET(_vsflags, _FLAG)   ((_vsflags) & (RPMVSF_##_FLAG))
  +#define VSF_SET(_vsflags, _FLAG)     \
  +     (*((unsigned *)&(_vsflags)) |= (RPMVSF_##_FLAG))
  +#define VSF_CLR(_vsflags, _FLAG)     \
  +     (*((unsigned *)&(_vsflags)) &= ~(RPMVSF_##_FLAG))
  +
   GENfree(IDTX)
   GENfree(IDT)
  +
  +#else        /* __cplusplus */
  +
  +#define QVA_ISSET(_qvaflags, _FLAG)  ((_qvaflags) & (VERIFY_##_FLAG))
  +
  +#define VSF_ISSET(_vsflags, _FLAG)   ((_vsflags) & (RPMVSF_##_FLAG))
  +#define VSF_SET(_vsflags, _FLAG)     (_vsflags) |= (RPMVSF_##_FLAG)
  +#define VSF_CLR(_vsflags, _FLAG)     (_vsflags) &= ~(RPMVSF_##_FLAG)
  +
   #endif       /* __cplusplus */
   
   /*@unchecked@*/
  @@ -413,7 +431,7 @@
       IDT ip;
       int niids = 0;
       int rc = 0;
  -    int vsflags, ovsflags;
  +    rpmVSFlags vsflags, ovsflags;
       int numAdded;
       int numRemoved;
       unsigned int _unsafe_rollbacks = 0;
  @@ -428,16 +446,25 @@
   
       _unsafe_rollbacks = rpmExpandNumeric("%{?_unsafe_rollbacks}");
   
  -    vsflags = rpmExpandNumeric("%{?_vsflags_erase}");
  -    vsflags = 0;     /* XXX FIXME: ignore default disablers. */
  -    if (ia->qva_flags & VERIFY_DIGEST)
  -     vsflags |= _RPMVSF_NODIGESTS;
  -    if (ia->qva_flags & VERIFY_SIGNATURE)
  -     vsflags |= _RPMVSF_NOSIGNATURES;
  -    if (ia->qva_flags & VERIFY_HDRCHK)
  -     vsflags |= RPMVSF_NOHDRCHK;
  -    vsflags |= RPMVSF_NEEDPAYLOAD;   /* XXX no legacy signatures */
  -    ovsflags = rpmtsSetVSFlags(ts, (rpmVSFlags) vsflags);
  +    vsflags = (rpmVSFlags) rpmExpandNumeric("%{?_vsflags_erase}");
  +    vsflags = (rpmVSFlags) 0;        /* XXX FIXME: ignore default disablers. 
*/
  +    if (!QVA_ISSET(ia->qva_flags, DIGEST)) {
  +     VSF_SET(vsflags, NOSHA1HEADER);
  +     VSF_SET(vsflags, NOMD5HEADER);
  +     VSF_SET(vsflags, NOSHA1);
  +     VSF_SET(vsflags, NOMD5);
  +    }
  +    if (!QVA_ISSET(ia->qva_flags, SIGNATURE)) {
  +     VSF_SET(vsflags, NODSAHEADER);
  +     VSF_SET(vsflags, NORSAHEADER);
  +     VSF_SET(vsflags, NODSA);
  +     VSF_SET(vsflags, NORSA);
  +    }
  +    if (!QVA_ISSET(ia->qva_flags, HDRCHK)) {
  +     VSF_SET(vsflags, NOHDRCHK);
  +    }
  +    VSF_SET(vsflags, NEEDPAYLOAD);   /* XXX needed? */
  +    ovsflags = rpmtsSetVSFlags(ts, vsflags);
   
       (void) rpmtsSetFlags(ts, transFlags);
       (void) rpmtsSetDFlags(ts, depFlags);
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to