RPM Community Forums

Mailing List Message of <rpm-cvs>

[CVS] RPM: rpm/ CHANGES rpm/rpmio/ tdir.c tfts.c tget.c tglob.c

From: Jeff Johnson <jbj@rpm5.org>
Date: Sat 09 Feb 2008 - 03:54:50 CET
Message-Id: <20080209025450.A848834847F@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:   09-Feb-2008 03:54:50
  Branch: HEAD                             Handle: 2008020902544901

  Modified files:
    rpm                     CHANGES
    rpm/rpmio               tdir.c tfts.c tget.c tglob.c

  Log:
    - jbj: map tdir/tglob/tfts errors into exit codes.

  Summary:
    Revision    Changes     Path
    1.2159      +1  -0      rpm/CHANGES
    2.12        +12 -6      rpm/rpmio/tdir.c
    2.19        +11 -6      rpm/rpmio/tfts.c
    1.14        +4  -3      rpm/rpmio/tget.c
    2.11        +4  -3      rpm/rpmio/tglob.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2158 -r1.2159 CHANGES
  --- rpm/CHANGES	9 Feb 2008 02:34:23 -0000	1.2158
  +++ rpm/CHANGES	9 Feb 2008 02:54:49 -0000	1.2159
  @@ -1,4 +1,5 @@
   5.0.0 -> 5.1a1:
  +    - jbj: map tdir/tglob/tfts errors into exit codes.
       - jbj: dav{Stat,LStat,Opendir) return ENOENT with malformed URI (including
   	no pesky trailing /).
       - jbj: rpmdav: fix: supply davOpendir->davHEAD a statbuf to avoid tdir/tfts
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/tdir.c
  ============================================================================
  $ cvs diff -u -r2.11 -r2.12 tdir.c
  --- rpm/rpmio/tdir.c	8 Feb 2008 21:02:16 -0000	2.11
  +++ rpm/rpmio/tdir.c	9 Feb 2008 02:54:50 -0000	2.12
  @@ -29,24 +29,29 @@
       }
   }
   
  -static void dirWalk(const char * dn)
  +static int dirWalk(const char * dn)
   {
       rpmop op = memset(alloca(sizeof(*op)), 0, sizeof(*op));
       struct dirent * dp;
       DIR * dir;
       int nentries;
  +    int rc = 1;
       int xx;
   
       xx = rpmswEnter(op, 0);
       nentries = 0;
  -    dir = Opendir(dn);
  +    if ((dir = Opendir(dn)) == NULL)
  +	goto exit;
       while ((dp = Readdir(dir)) != NULL)
   	printDir(dp, nentries++);
  -    xx = Closedir(dir);
  +    rc = Closedir(dir);
  +
  +exit:
       xx = rpmswExit(op, nentries);
   
   fprintf(stderr, "===== %s: %d entries\n", dn, nentries);
       rpmswPrint("opendir:", op);
  +    return rc;
   }
   
   static struct poptOption optionsTable[] = {
  @@ -106,10 +111,11 @@
       }
   
       /* XXX Add pesky trailing '/' to http:// URI's */
  -    while ((dn = *av++) != NULL) {
  +    rc = 0;
  +    while (rc == 0 && (dn = *av++) != NULL) {
   	size_t nb = strlen(dn);
   	dn = rpmExpand(dn, (dn[nb-1] != '/' ? "/" : NULL), NULL);
  -	dirWalk(dn);
  +	rc = dirWalk(dn);
   	dn = _free(dn);
       }
   
  @@ -119,5 +125,5 @@
   
       optCon = poptFreeContext(optCon);
   
  -    return 0;
  +    return rc;
   }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/tfts.c
  ============================================================================
  $ cvs diff -u -r2.18 -r2.19 tfts.c
  --- rpm/rpmio/tfts.c	8 Feb 2008 22:20:03 -0000	2.18
  +++ rpm/rpmio/tfts.c	9 Feb 2008 02:54:50 -0000	2.19
  @@ -133,21 +133,25 @@
       rpmop op = memset(alloca(sizeof(*op)), 0, sizeof(*op));
       FTS * ftsp;
       FTSENT * fts;
  +    int rc = 1;
       int xx;
   
       xx = rpmswEnter(op, 0);
       ndirs = nfiles = 0;
  -    ftsp = Fts_open((char *const *)av, ftsOpts, NULL);
  +    if ((ftsp = Fts_open((char *const *)av, ftsOpts, NULL)) == NULL)
  +	goto exit;
       while((fts = Fts_read(ftsp)) != NULL)
   	xx = ftsPrint(ftsp, fts);
  -    xx = Fts_close(ftsp);
  +    rc = Fts_close(ftsp);
  +
  +exit:
       xx = rpmswExit(op, ndirs);
   
   fprintf(stderr, "===== (%d/%d) dirs/files in:\n", ndirs, nfiles);
       argvPrint(NULL, av, NULL);
       rpmswPrint("fts:", op);
   
  -    return 0;
  +    return rc;
   }
   
   static struct poptOption optionsTable[] = {
  @@ -240,12 +244,13 @@
       ac = argvCount(dav);
       if (ac < 1) {
   	poptPrintUsage(optCon, stderr, 0);
  +	rc = 1;
   	goto exit;
       }
   
       if (mirePattern) {
   	mire = mireNew(mireMode, mireTag);
  -	if ((xx = mireRegcomp(mire, mirePattern)) != 0)
  +	if ((rc = mireRegcomp(mire, mirePattern)) != 0)
   	    goto exit;;
       }
   
  @@ -261,7 +266,7 @@
   	dn = _free(dn);
       }
   
  -    ftsWalk(av);
  +    rc = ftsWalk(av);
   
   exit:
       mg = rpmmgFree(mg);
  @@ -273,5 +278,5 @@
   
       optCon = poptFreeContext(optCon);
   
  -    return 0;
  +    return rc;
   }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/tget.c
  ============================================================================
  $ cvs diff -u -r1.13 -r1.14 tget.c
  --- rpm/rpmio/tget.c	8 Feb 2008 21:02:16 -0000	1.13
  +++ rpm/rpmio/tget.c	9 Feb 2008 02:54:50 -0000	1.14
  @@ -179,8 +179,9 @@
   	goto exit;
       }
   
  -    while ((fn = *av++) != NULL)
  -	xx = readFile(fn);
  +    rc = 0;
  +    while (rc == 0 && (fn = *av++) != NULL)
  +	rc = readFile(fn);
   
   exit:
   
  @@ -188,5 +189,5 @@
   
       optCon = poptFreeContext(optCon);
   
  -    return 0;
  +    return rc;
   }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/tglob.c
  ============================================================================
  $ cvs diff -u -r2.10 -r2.11 tglob.c
  --- rpm/rpmio/tglob.c	8 Feb 2008 21:12:57 -0000	2.10
  +++ rpm/rpmio/tglob.c	9 Feb 2008 02:54:50 -0000	2.11
  @@ -101,8 +101,9 @@
   	goto exit;
       }
   
  -    while ((dn = *av++) != NULL)
  -	xx = printGlob(dn);
  +    rc = 0;
  +    while (rc == 0 && (dn = *av++) != NULL)
  +	rc = printGlob(dn);
   
   exit:
   
  @@ -110,5 +111,5 @@
   
       optCon = poptFreeContext(optCon);
   
  -    return 0;
  +    return rc;
   }
  @@ .
Received on Sat Feb 9 03:54:50 2008
Driven by Jeff Johnson and the RPM project team.
Hosted by OpenPKG and Ralf S. Engelschall.
Powered by FreeBSD and OpenPKG.