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:   01-Mar-2008 20:12:22
  Branch: HEAD                             Handle: 2008030119122100

  Modified files:
    rpm                     CHANGES
    rpm/rpmio               librpmio.vers rpmdav.c rpmdav.h rpmrpc.c

  Log:
    - jbj: rpmdav: refactor davOpendir et al on top of avOpendir.

  Summary:
    Revision    Changes     Path
    1.2215      +1  -0      rpm/CHANGES
    2.54        +0  -1      rpm/rpmio/librpmio.vers
    2.62        +4  -121    rpm/rpmio/rpmdav.c
    2.24        +0  -6      rpm/rpmio/rpmdav.h
    2.69        +0  -8      rpm/rpmio/rpmrpc.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/CHANGES
  ============================================================================
  $ cvs diff -u -r1.2214 -r1.2215 CHANGES
  --- rpm/CHANGES       1 Mar 2008 16:17:19 -0000       1.2214
  +++ rpm/CHANGES       1 Mar 2008 19:12:21 -0000       1.2215
  @@ -1,4 +1,5 @@
   5.0.0 -> 5.1a1:
  +    - jbj: rpmdav: refactor davOpendir et al on top of avOpendir.
       - jbj: handle (GNU-style) ar(1) long member names.
       - jbj: permit ar(1) payloads (file names are truncated atm).
       - jbj: rpmmg: fix: avoid false failure using <pcreposix.h>.
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/librpmio.vers
  ============================================================================
  $ cvs diff -u -r2.53 -r2.54 librpmio.vers
  --- rpm/rpmio/librpmio.vers   29 Feb 2008 23:59:43 -0000      2.53
  +++ rpm/rpmio/librpmio.vers   1 Mar 2008 19:12:21 -0000       2.54
  @@ -48,7 +48,6 @@
       _dav_debug;
       _dav_nooptions;
       davLstat;
  -    davmagicdir;
       davMkdir;
       davOpen;
       davOpendir;
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmdav.c
  ============================================================================
  $ cvs diff -u -r2.61 -r2.62 rpmdav.c
  --- rpm/rpmio/rpmdav.c        1 Mar 2008 18:39:03 -0000       2.61
  +++ rpm/rpmio/rpmdav.c        1 Mar 2008 19:12:21 -0000       2.62
  @@ -1778,89 +1778,23 @@
   #ifdef WITH_NEON
   
   /* =============================================================== */
  -/[EMAIL PROTECTED]@*/
  -int davmagicdir = 0x8440291;
  -
   int davClosedir(/[EMAIL PROTECTED]@*/ DIR * dir)
   {
  -    DAVDIR avdir = (DAVDIR)dir;
  -
  -if (_dav_debug < 0)
  -fprintf(stderr, "*** davClosedir(%p)\n", avdir);
  -
  -#if defined(HAVE_PTHREAD_H)
  -/[EMAIL PROTECTED] -noeffectuncon @*/
  -    (void) pthread_mutex_destroy(&avdir->lock);
  -/[EMAIL PROTECTED] =noeffectuncon @*/
  -#endif
  -
  -    avdir = _free(avdir);
  -    return 0;
  +    return avClosedir(dir);
   }
   
   struct dirent * davReaddir(DIR * dir)
   {
  -    DAVDIR avdir = (DAVDIR)dir;
  -    struct dirent * dp;
  -    const char ** av;
  -    unsigned char * dt;
  -    int ac;
  -    int i;
  -
  -    if (avdir == NULL || !ISDAVMAGIC(avdir) || avdir->data == NULL) {
  -     /* XXX TODO: EBADF errno. */
  -     return NULL;
  -    }
  -
  -    dp = (struct dirent *) avdir->data;
  -    av = (const char **) (dp + 1);
  -    ac = (int)avdir->size;
  -    dt = (unsigned char *) (av + (ac + 1));
  -    i = avdir->offset + 1;
  -
  -    if (i < 0 || i >= ac || av[i] == NULL)
  -     return NULL;
  -
  -    avdir->offset = i;
  -
  -    /* XXX glob(3) uses REAL_DIR_ENTRY(dp) test on d_ino */
  -/[EMAIL PROTECTED]@*/
  -    /* Hash the name (starting with parent hash) for a d_ino analogue. */
  -    dp->d_ino = hashFunctionString(avdir->filepos, dp->d_name, 0);
  -#if !defined(__DragonFly__) && !defined(__CYGWIN__)
  -    dp->d_reclen = 0;                /* W2DO? */
  -#endif
  -
  -#if !(defined(hpux) || defined(__hpux) || defined(sun) || 
defined(RPM_OS_AIX) || defined(__CYGWIN__))
  -#if !defined(__APPLE__) && !defined(__FreeBSD_kernel__) && 
!defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__DragonFly__)
  -    dp->d_off = 0;           /* W2DO? */
  -#endif
  -    dp->d_type = dt[i];
  -#endif
  -/[EMAIL PROTECTED]@*/
  -
  -    strncpy(dp->d_name, av[i], sizeof(dp->d_name));
  -if (_dav_debug < 0)
  -fprintf(stderr, "*** davReaddir(%p) %p \"%s\"\n", (void *)avdir, dp, 
dp->d_name);
  -
  -    return dp;
  +    return avReaddir(dir);
   }
   
   DIR * davOpendir(const char * path)
   {
  +    AVDIR avdir;
       struct fetch_context_s * ctx;
       struct stat sb, *st = &sb; /* XXX HACK: davHEAD needs ctx->st. */
  -    const char ** av;
       int rc;
   
  -    DAVDIR avdir;
  -    struct dirent * dp;
  -    size_t nb;
  -    const char ** nav;
  -    unsigned char * dt;
  -    char * t;
  -    int ac, nac;
  -
   if (_dav_debug < 0)
   fprintf(stderr, "*** davOpendir(%s)\n", path);
   
  @@ -1883,58 +1817,7 @@
        return NULL;
       }
   
  -    av = ctx->av;
  -    nb = 0;
  -    ac = 0;
  -    if (av != NULL)
  -    while (av[ac] != NULL)
  -     nb += strlen(av[ac++]) + 1;
  -    ac += 2; /* for "." and ".." */
  -    nb += sizeof(".") + sizeof("..");
  -
  -    nb += sizeof(*avdir) + sizeof(*dp) + ((ac + 1) * sizeof(*av)) + (ac + 1);
  -    avdir = xcalloc(1, nb);
  -    /[EMAIL PROTECTED]@*/
  -    dp = (struct dirent *) (avdir + 1);
  -    nav = (const char **) (dp + 1);
  -    dt = (unsigned char *) (nav + (ac + 1));
  -    t = (char *) (dt + ac + 1);
  -    /[EMAIL PROTECTED]@*/
  -
  -    avdir->fd = davmagicdir;
  -/[EMAIL PROTECTED]@*/
  -    avdir->data = (char *) dp;
  -/[EMAIL PROTECTED]@*/
  -    avdir->allocation = nb;
  -    avdir->size = ac;
  -    avdir->offset = -1;
  -    /* Hash the directory path for a d_ino analogue. */
  -    avdir->filepos = hashFunctionString(0, path, 0);
  -
  -#if defined(HAVE_PTHREAD_H)
  -/[EMAIL PROTECTED] -noeffectuncon -nullpass @*/
  -    (void) pthread_mutex_init(&avdir->lock, NULL);
  -/[EMAIL PROTECTED] =noeffectuncon =nullpass @*/
  -#endif
  -
  -    nac = 0;
  -/[EMAIL PROTECTED] [EMAIL PROTECTED]/
  -    dt[nac] = (unsigned char)DT_DIR; nav[nac++] = t; t = stpcpy(t, ".");  
t++;
  -    dt[nac] = (unsigned char)DT_DIR; nav[nac++] = t; t = stpcpy(t, ".."); 
t++;
  -/[EMAIL PROTECTED] [EMAIL PROTECTED]/
  -
  -    /* Append av strings to DIR elements. */
  -    ac = 0;
  -    if (av != NULL)
  -    while (av[ac] != NULL) {
  -     nav[nac] = t;
  -     dt[nac] = (unsigned char) (S_ISDIR(ctx->modes[ac]) ? DT_DIR : DT_REG);
  -     t = stpcpy(t, av[ac]);
  -     ac++;
  -     t++;
  -     nac++;
  -    }
  -    nav[nac] = NULL;
  +    avdir = avOpendir(path, ctx->av, ctx->modes);
   
       ctx = fetch_destroy_context(ctx);
   
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmdav.h
  ============================================================================
  $ cvs diff -u -r2.23 -r2.24 rpmdav.h
  --- rpm/rpmio/rpmdav.h        1 Mar 2008 18:39:03 -0000       2.23
  +++ rpm/rpmio/rpmdav.h        1 Mar 2008 19:12:21 -0000       2.24
  @@ -48,12 +48,6 @@
   extern int avmagicdir;
   #define ISAVMAGIC(_dir) (!memcmp((_dir), &avmagicdir, sizeof(avmagicdir)))
   
  -/**
  - */
  -/[EMAIL PROTECTED]@*/
  -extern int davmagicdir;
  -#define ISDAVMAGIC(_dir) (!memcmp((_dir), &davmagicdir, sizeof(davmagicdir)))
  -
   #ifdef __cplusplus
   extern "C" {
   #endif
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmrpc.c
  ============================================================================
  $ cvs diff -u -r2.68 -r2.69 rpmrpc.c
  --- rpm/rpmio/rpmrpc.c        27 Feb 2008 18:27:11 -0000      2.68
  +++ rpm/rpmio/rpmrpc.c        1 Mar 2008 19:12:21 -0000       2.69
  @@ -1842,10 +1842,6 @@
        return NULL;
       if (ISAVMAGIC(dir))
        return avReaddir(dir);
  -#ifdef WITH_NEON
  -    if (ISDAVMAGIC(dir))
  -     return davReaddir(dir);
  -#endif
       return readdir(dir);
   }
   
  @@ -1857,10 +1853,6 @@
        return 0;
       if (ISAVMAGIC(dir))
        return avClosedir(dir);
  -#ifdef WITH_NEON
  -    if (ISDAVMAGIC(dir))
  -     return davClosedir(dir);
  -#endif
       return closedir(dir);
   }
   
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to