View | Details | Raw Unified
Collapse All | Expand All

(-) zoo-2.10~/zooext.c (+9 lines)
 Lines 89-94    Link Here 
#endif
#endif
struct direntry direntry;                 /* directory entry */
struct direntry direntry;                 /* directory entry */
int first_dir = 1;                                                            /* first dir entry seen? */
int first_dir = 1;                                                            /* first dir entry seen? */
 + unsigned long zoo_pointer = 0;            /* Track our position in the file */
static char extract_ver[] = "Zoo %d.%d is needed to extract %s.\n";
static char extract_ver[] = "Zoo %d.%d is needed to extract %s.\n";
static char no_space[] = "Insufficient disk space to extract %s.\n";
static char no_space[] = "Insufficient disk space to extract %s.\n";
 Lines 169-174    Link Here 
               exit_status = 1;
               exit_status = 1;
   }
   }
   zooseek (zoo_file, zoo_header.zoo_start, 0); /* seek to where data begins */
   zooseek (zoo_file, zoo_header.zoo_start, 0); /* seek to where data begins */
   /* Begin tracking our position in the file */ 
   zoo_pointer = zoo_header.zoo_start; 
}
}
#ifndef PORTABLE
#ifndef PORTABLE
 Lines 597-602    Link Here 
   } /* end if */
   } /* end if */
loop_again:
loop_again:
   /* Make sure we are not seeking to already processed data */ 
   if (next_ptr <= zoo_pointer)
     prterror ('f', "ZOO chain structure is corrupted\n");
   zoo_pointer = next_ptr; 
   zooseek (zoo_file, next_ptr, 0); /* ..seek to next dir entry */
   zooseek (zoo_file, next_ptr, 0); /* ..seek to next dir entry */
} /* end while */
} /* end while */
(-) zoo-2.10~/zoolist.c (+9 lines)
 Lines 92-97    Link Here 
int show_mode = 0;                             /* show file protection */
int show_mode = 0;                             /* show file protection */
#endif
#endif
int first_dir = 1;                             /* if first direntry -- to adjust dat_ofs */
int first_dir = 1;                             /* if first direntry -- to adjust dat_ofs */
unsigned long zoo_pointer = 0; /* Track our position in the file */
while (*option) {
while (*option) {
   switch (*option) {
   switch (*option) {
 Lines 210-215    Link Here 
               void show_acmt PARMS ((struct zoo_header *, ZOOFILE, int));
               void show_acmt PARMS ((struct zoo_header *, ZOOFILE, int));
               show_acmt (&zoo_header, zoo_file, 0);           /* show archive comment */
               show_acmt (&zoo_header, zoo_file, 0);           /* show archive comment */
       }
       }
                                                                         
       /* Begin tracking our position in the file */
       zoo_pointer = zoo_header.zoo_start;
   /* Seek to the beginning of the first directory entry */
   /* Seek to the beginning of the first directory entry */
   if (zooseek (zoo_file, zoo_header.zoo_start, 0) != 0) {
   if (zooseek (zoo_file, zoo_header.zoo_start, 0) != 0) {
 Lines 437-442    Link Here 
         if (verb_list && !fast)
         if (verb_list && !fast)
            show_comment (&direntry, zoo_file, 0, (char *) NULL);
            show_comment (&direntry, zoo_file, 0, (char *) NULL);
      } /* end if (lots of conditions) */
      } /* end if (lots of conditions) */
      /* Make sure we are not seeking to already processed data */
      if (direntry.next <= zoo_pointer)
        prterror ('f', "ZOO chain structure is corrupted\n");
      zoo_pointer = direntry.next;
   
   
               /* ..seek to next dir entry */
               /* ..seek to next dir entry */
      zooseek (zoo_file, direntry.next, 0);
      zooseek (zoo_file, direntry.next, 0);