RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: [email protected] Module: rpm Date: 23-Feb-2009 20:12:54 Branch: HEAD Handle: 2009022319124700 Modified files: rpm/rpmio rpmz.c Log: - jbj: rpmz: attempt to preserve directory stat through recursion. Summary: Revision Changes Path 1.37 +4 -2 rpm/rpmio/rpmz.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/rpmio/rpmz.c ============================================================================ $ cvs diff -u -r1.36 -r1.37 rpmz.c --- rpm/rpmio/rpmz.c 22 Feb 2009 23:55:26 -0000 1.36 +++ rpm/rpmio/rpmz.c 23 Feb 2009 19:12:47 -0000 1.37 @@ -797,6 +797,7 @@ /* Recurse into directory */ if (S_ISDIR(st->st_mode)) { + struct stat sb = *st; /* structure assignment. */ struct dirent * dp; DIR * dir; ARGV_t av = NULL; @@ -807,12 +808,12 @@ if (!F_ISSET(z->flags, RECURSE)) { fprintf(stderr, "%s: input %s is a directory -- skipping\n", - __progname, z->ifn); + __progname, z->_ifn); goto exit; } len = strlen(z->_ifn); te = z->_ifn + len; - if ((dir = Opendir(z->ifn)) == NULL) + if ((dir = Opendir(z->_ifn)) == NULL) goto exit; while ((dp = Readdir(dir)) != NULL) { if (dp->d_name[0] == '\0' || @@ -831,6 +832,7 @@ *te = '\0'; } av = argvFree(av); + *st = sb; /* structure assignment. */ rc = RPMRC_OK; goto exit; } @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository [email protected]
