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: 08-Feb-2008 17:31:45
Branch: HEAD Handle: 2008020816314301
Modified files:
rpm CHANGES
rpm/rpmio tdir.c tfts.c
Log:
- jbj: tweak up tdir debugging spew, add a Fts(3) stopwatch, append
pesky /.
Summary:
Revision Changes Path
1.2152 +1 -0 rpm/CHANGES
2.10 +35 -20 rpm/rpmio/tdir.c
2.16 +10 -13 rpm/rpmio/tfts.c
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: rpm/CHANGES
============================================================================
$ cvs diff -u -r1.2151 -r1.2152 CHANGES
--- rpm/CHANGES 8 Feb 2008 15:08:14 -0000 1.2151
+++ rpm/CHANGES 8 Feb 2008 16:31:43 -0000 1.2152
@@ -1,4 +1,5 @@
5.0.0 -> 5.1a1:
+ - jbj: tweak up tdir debugging spew, add a Fts(3) stopwatch, append pesky /.
- jbj: tweak up tfts debugging spew, add a Fts(3) stopwatch, append pesky /.
- jbj: rpmsw: add rpmswPrint to display stopwtch results.
- jbj: rpmdav: fix: check the pesky trailing '/' on collections correctly.
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/tdir.c
============================================================================
$ cvs diff -u -r2.9 -r2.10 tdir.c
--- rpm/rpmio/tdir.c 8 Feb 2008 00:02:49 -0000 2.9
+++ rpm/rpmio/tdir.c 8 Feb 2008 16:31:44 -0000 2.10
@@ -10,30 +10,43 @@
static int _debug = 0;
-static void printDir(const char * path)
+static void printDir(struct dirent * dp, int nentry)
{
- struct dirent * dp;
- DIR * dir;
- int xx;
- int i;
-
-fprintf(stderr, "===== %s\n", path);
- dir = Opendir(path);
- i = 0;
- while ((dp = Readdir(dir)) != NULL) {
-fprintf(stderr, "%5d (%x,%x) %x %x %s\n", i++,
-(unsigned) dp->d_ino,
+ if (rpmIsDebug()) {
+ unsigned d_off = 0;
#if !(defined(hpux) || defined(__hpux) || defined(sun) || defined(RPM_OS_AIX)) && \
!defined(__APPLE__) && !defined(__FreeBSD_kernel__) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__DragonFly__)
-(unsigned) dp->d_off,
-#else
-(unsigned)0,
+ d_off = (unsigned) dp->d_off,
#endif
-(unsigned) dp->d_reclen,
-(unsigned) dp->d_type,
-dp->d_name);
+ fprintf(stderr, "%5d (0x%08x,0x%08x) 0x%04x ", nentry,
+ (unsigned) dp->d_ino, d_off, (unsigned) dp->d_reclen);
}
+ if (rpmIsVerbose()) {
+ if (!rpmIsDebug())
+ fprintf(stderr, "\t");
+ fprintf(stderr, "%s%s\n", dp->d_name,
+ (dp->d_type == 0x04 ? "/" : ""));
+ }
+}
+
+static void dirWalk(const char * dn)
+{
+ rpmop op = memset(alloca(sizeof(*op)), 0, sizeof(*op));
+ struct dirent * dp;
+ DIR * dir;
+ int nentries;
+ int xx;
+
+ xx = rpmswEnter(op, 0);
+ nentries = 0;
+ dir = Opendir(dn);
+ while ((dp = Readdir(dir)) != NULL)
+ printDir(dp, nentries++);
xx = Closedir(dir);
+ xx = rpmswExit(op, nentries);
+
+fprintf(stderr, "===== %s: %d entries\n", dn, nentries);
+ rpmswPrint("opendir:", op);
}
static struct poptOption optionsTable[] = {
@@ -90,9 +103,11 @@
goto exit;
}
+ /* XXX Add pesky trailing '/' to http:// URI's */
while ((dn = *av++) != NULL) {
- dn = rpmGetPath(dn, "/", NULL);
- printDir(dn);
+ size_t nb = strlen(dn);
+ dn = rpmExpand(dn, (dn[nb-1] != '/' ? "/" : NULL), NULL);
+ dirWalk(dn);
dn = _free(dn);
}
@@ .
patch -p0 <<'@@ .'
Index: rpm/rpmio/tfts.c
============================================================================
$ cvs diff -u -r2.15 -r2.16 tfts.c
--- rpm/rpmio/tfts.c 8 Feb 2008 15:08:14 -0000 2.15
+++ rpm/rpmio/tfts.c 8 Feb 2008 16:31:44 -0000 2.16
@@ -135,8 +135,8 @@
FTSENT * fts;
int xx;
- ndirs = nfiles = 0;
xx = rpmswEnter(op, 0);
+ ndirs = nfiles = 0;
ftsp = Fts_open((char *const *)av, ftsOpts, NULL);
while((fts = Fts_read(ftsp)) != NULL)
xx = ftsPrint(ftsp, fts);
@@ -205,9 +205,9 @@
ARGV_t av = NULL;
int ac = 0;
ARGV_t dav;
+ const char * dn;
int rc;
int xx;
- int i;
while ((rc = poptGetNextOpt(optCon)) > 0) {
const char * optArg = poptGetOptArg(optCon);
@@ -241,17 +241,6 @@
goto exit;
}
- /* XXX Add trailing '/' to http:// URI's */
- for (i = 0; i < ac; i++) {
- const char * dn = dav[i];
- size_t nb = strlen(dn);
- const char *nav[2];
- nav[0] = rpmExpand(dn, (dn[nb-1] != '/' ? "/" : NULL), NULL);
- nav[1] = NULL;
- argvAppend(&av, nav);
- nav[0] = _free(nav[0]);
- }
-
if (mirePattern) {
mire = mireNew(mireMode, mireTag);
if ((xx = mireRegcomp(mire, mirePattern)) != 0)
@@ -262,6 +251,14 @@
mg = rpmmgNew(mgFile, mgFlags);
}
+ /* XXX Add pesky trailing '/' to http:// URI's */
+ while ((dn = *dav++) != NULL) {
+ size_t nb = strlen(dn);
+ dn = rpmExpand(dn, (dn[nb-1] != '/' ? "/" : NULL), NULL);
+ argvAdd(&av, dn);
+ dn = _free(nav[0]);
+ }
+
ftsWalk(av);
exit:
@@ .
Received on Fri Feb 8 17:31:45 2008