RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/rpmio/ mire.c

From: Jeff Johnson <jbj@rpm5.org>
Date: Sun 10 Feb 2008 - 23:09:09 CET
Message-Id: <20080210220909.2215634844A@rpm5.org>
  RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Jeff Johnson
  Root:   /v/rpm/cvs                       Email:  jbj@rpm5.org
  Module: rpm                              Date:   10-Feb-2008 23:09:09
  Branch: HEAD                             Handle: 2008021022090800

  Modified files:
    rpm/rpmio               mire.c

  Log:
    - jbj: mire: fix: mireRegexec for pcre return codes were goofy.

  Summary:
    Revision    Changes     Path
    1.16        +12 -10     rpm/rpmio/mire.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/mire.c
  ============================================================================
  $ cvs diff -u -r1.15 -r1.16 mire.c
  --- rpm/rpmio/mire.c	10 Feb 2008 18:32:33 -0000	1.15
  +++ rpm/rpmio/mire.c	10 Feb 2008 22:09:08 -0000	1.16
  @@ -131,18 +131,17 @@
   	    rc = -1;
   	}
   	break;
  -#ifdef	WITH_PCRE
       case RPMMIRE_PCRE:
  +#ifdef	WITH_PCRE
   	if (vallen == 0)
   	    vallen = strlen(val);
   	rc = pcre_exec(mire->pcre, mire->hints, val, vallen, 0,
   		mire->eoptions, mire->offsets, mire->noffsets);
  -	if (rc && rc != PCRE_ERROR_NOMATCH) {
  -	    rpmlog(RPMLOG_ERR, _("%s: pcre_exec failed: return %d\n"), rc);
  -	    rc = -1;
  +	if (rc < 0 && rc != PCRE_ERROR_NOMATCH) {
  +	    rpmlog(RPMLOG_ERR, _("pcre_exec failed: return %d\n"), rc);
   	}
   #else
  -	rc = -1;
  +	rc = -99;
   #endif
   	break;
       case RPMMIRE_GLOB:
  @@ -157,7 +156,7 @@
   
   /*@-modfilesys@*/
   if (_mire_debug)
  -fprintf(stderr, "--> mireRegexec(%p, \"%s\", %u) rc %d\n", mire, val, (unsigned)vallen, rc);
  +fprintf(stderr, "--> mireRegexec(%p, %p[%u]) rc %d mode %d\t\"%.*s\"\n", mire, val, (unsigned)vallen, rc, mire->mode, vallen, val);
   /*@=modfilesys@*/
       return rc;
   }
  @@ -172,20 +171,23 @@
       case RPMMIRE_DEFAULT:
       case RPMMIRE_STRCMP:
   	break;
  -#ifdef	WITH_PCRE
       case RPMMIRE_PCRE:
  +#ifdef	WITH_PCRE
   	if (mire->coptions == 0)
   	    mire->coptions = 0;		/* XXX defaults? */
  +	mire->errcode = 0;
  +	mire->errmsg = NULL;
  +	mire->erroff = 0;
   	mire->pcre = pcre_compile2(mire->pattern, mire->coptions,
   		&mire->errcode, &mire->errmsg, &mire->erroff, mire->table);
   	if (mire->pcre == NULL) {
   	    rpmlog(RPMLOG_ERR,
  -		_("%s: pcre_compile2 failed: %s(%d) at offset %d\n"),
  -		mire->pattern, mire->errmsg, mire->errcode, mire->erroff);
  +		_("pcre_compile2 failed: %s(%d) at offset %d of \"%s\"\n"),
  +		mire->errmsg, mire->errcode, mire->erroff, mire->pattern);
   	    rc = -1;
   	}
   #else
  -	rc = -1;
  +	rc = -99;
   #endif
   	break;
       case RPMMIRE_REGEX:
  @@ .
Received on Sun Feb 10 23:09:09 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.