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:   12-Sep-2011 16:16:38
  Branch: HEAD                             Handle: 2011091214163700

  Modified files:
    rpm                     CHANGES
    rpm/lib                 rpmgi.c

  Log:
    - rpmgi: fix: load rpmdb tag value filters more carefully.

  Summary:
    Revision    Changes     Path
    1.3675      +1  -0      rpm/CHANGES
    2.79        +8  -5      rpm/lib/rpmgi.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.3674 -r1.3675 CHANGES
  --- rpm/CHANGES       6 Sep 2011 14:41:17 -0000       1.3674
  +++ rpm/CHANGES       12 Sep 2011 14:16:37 -0000      1.3675
  @@ -1,4 +1,5 @@
   HEAD:
  +    - jbj: rpmgi: fix: load rpmdb tag value filters more carefully.
       - devzero2000: add lzip support 
       - devzero2000: add lrzip support 
         (blueprint 
https://blueprints.launchpad.net/rpm/+spec/rpm5-use-lrzip-as-new-compression-program)
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/lib/rpmgi.c
  ============================================================================
  $ cvs diff -u -r2.78 -r2.79 rpmgi.c
  --- rpm/lib/rpmgi.c   19 Mar 2011 14:51:51 -0000      2.78
  +++ rpm/lib/rpmgi.c   12 Sep 2011 14:16:37 -0000      2.79
  @@ -432,7 +432,7 @@
   {
       rpmRC rpmrc = RPMRC_OK;
       ARGV_t av;
  -    int res = 0;
  +    int got = 0;
   
       gi->mi = rpmtsInitIterator(gi->ts, gi->tag, gi->keyp, gi->keylen);
   
  @@ -454,22 +454,25 @@
                *ae++ = '\0';
                if (*a != '\0') {       /* XXX HACK: permit '=foo' */
                    tag = tagValue(a);
  +#ifdef       DYING   /* XXX arbitrary tags always have a return value */
                    if (tag < 0) {
                        rpmlog(RPMLOG_NOTICE, _("unknown tag: \"%s\"\n"), a);
  -                     res = 1;
  +                     got = -1;
                    }
  +#endif
                }
                pat = ae;
  +             got++;
            }
  -         if (!res) {
  +         if (got) {
   if (_rpmgi_debug  < 0)
   fprintf(stderr, "\tav %p[%d]: \"%s\" -> %s ~= \"%s\"\n", gi->argv, (int)(av 
- gi->argv), *av, tagName(tag), pat);
  -             res = rpmmiAddPattern(gi->mi, tag, RPMMIRE_DEFAULT, pat);
  +             got = rpmmiAddPattern(gi->mi, tag, RPMMIRE_DEFAULT, pat);
            }
            a = _free(a);
        }
   
  -     if (res == 0)
  +     if (got >= 0)
            continue;
   
        gi->mi = rpmmiFree(gi->mi);     /* XXX odd side effect? */
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                rpm-cvs@rpm5.org

Reply via email to