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:   02-Mar-2008 03:11:53
  Branch: HEAD                             Handle: 2008030202115300

  Modified files:
    rpm/rpmio               rpmdav.c rpmdav.h

  Log:
    - jbj: add acContextAdd argv collector.

  Summary:
    Revision    Changes     Path
    2.66        +32 -21     rpm/rpmio/rpmdav.c
    2.27        +7  -0      rpm/rpmio/rpmdav.h
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmdav.c
  ============================================================================
  $ cvs diff -u -r2.65 -r2.66 rpmdav.c
  --- rpm/rpmio/rpmdav.c        2 Mar 2008 01:14:27 -0000       2.65
  +++ rpm/rpmio/rpmdav.c        2 Mar 2008 02:11:53 -0000       2.66
  @@ -122,6 +122,35 @@
       return ctx;
   }
   
  +int avContextAdd(avContext ctx, const char * path,
  +             mode_t mode, size_t size, time_t mtime)
  +{
  +    int xx;
  +
  +if (_av_debug < 0)
  +fprintf(stderr, "*** avContextAdd(%p,\"%s\", %06o, 0x%x, 0x%x)\n", ctx, 
path, mode, (unsigned)size, (unsigned)mtime);
  +
  +    xx = argvAdd(&ctx->av, path);
  +
  +    while (ctx->ac >= ctx->nalloced) {
  +     if (ctx->nalloced <= 0)
  +         ctx->nalloced = 1;
  +     ctx->nalloced *= 2;
  +     ctx->modes = xrealloc(ctx->modes,
  +                             (sizeof(*ctx->modes) * ctx->nalloced));
  +     ctx->sizes = xrealloc(ctx->sizes,
  +                             (sizeof(*ctx->sizes) * ctx->nalloced));
  +     ctx->mtimes = xrealloc(ctx->mtimes,
  +                             (sizeof(*ctx->mtimes) * ctx->nalloced));
  +    }
  +
  +    ctx->modes[ctx->ac] = mode;
  +    ctx->sizes[ctx->ac] = size;
  +    ctx->mtimes[ctx->ac] = mtime;
  +    ctx->ac++;
  +    return 0;
  +}
  +
   int avClosedir(/[EMAIL PROTECTED]@*/ DIR * dir)
   {
       AVDIR avdir = (AVDIR)dir;
  @@ -967,23 +996,6 @@
        val = ne_path_unescape(val);
   /[EMAIL PROTECTED]@*/
   
  -     xx = argvAdd(&ctx->av, val);
  -if (_dav_debug < 0)
  -fprintf(stderr, "*** argvAdd(%p,\"%s\")\n", &ctx->av, val);
  -     ne_free(val);
  -
  -     while (ctx->ac >= ctx->nalloced) {
  -         if (ctx->nalloced <= 0)
  -             ctx->nalloced = 1;
  -         ctx->nalloced *= 2;
  -         ctx->modes = xrealloc(ctx->modes,
  -                             (sizeof(*ctx->modes) * ctx->nalloced));
  -         ctx->sizes = xrealloc(ctx->sizes,
  -                             (sizeof(*ctx->sizes) * ctx->nalloced));
  -         ctx->mtimes = xrealloc(ctx->mtimes,
  -                             (sizeof(*ctx->mtimes) * ctx->nalloced));
  -     }
  -
        switch (current->type) {
        case resr_normal:
            st_mode = S_IFREG;
  @@ -997,10 +1009,9 @@
            st_mode = 0;
            /[EMAIL PROTECTED]@*/ break;
        }
  -     ctx->modes[ctx->ac] = st_mode;
  -     ctx->sizes[ctx->ac] = current->size;
  -     ctx->mtimes[ctx->ac] = current->modtime;
  -     ctx->ac++;
  +
  +     xx = avContextAdd(ctx, val, st_mode, current->size, current->modtime);
  +     ne_free(val);
   
        current = fetch_destroy_item(current);
       }
  @@ .
  patch -p0 <<'@@ .'
  Index: rpm/rpmio/rpmdav.h
  ============================================================================
  $ cvs diff -u -r2.26 -r2.27 rpmdav.h
  --- rpm/rpmio/rpmdav.h        2 Mar 2008 01:14:27 -0000       2.26
  +++ rpm/rpmio/rpmdav.h        2 Mar 2008 02:11:53 -0000       2.27
  @@ -92,6 +92,13 @@
           /[EMAIL PROTECTED] *st, internalState @*/;
   
   /**
  + */
  +int avContextAdd(avContext ctx, const char * path,
  +             mode_t mode, size_t size, time_t mtime)
  +        /[EMAIL PROTECTED] internalState @*/
  +        /[EMAIL PROTECTED] ctx, internalState @*/;
  +
  +/**
    * Close an argv directory.
    * @param dir                argv DIR
    * @return           0 always
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to