/*---------------------------------*//* View Zip Contents - Module      *//* Link this with rest.            *//*                                 *//* Ivo van Poorten, May 1993.      *//*---------------------------------*/#include STDIO.H/*---------------------------------*//* ZIP LAYOUT Declarations         *//* No 'typedef struct'-format      *//* because Lightspeed C does not   *//* support that.                   *//*---------------------------------*/extern int siglw,sighw;/* Local_file_header */extern int vneed1,gpb1,cmeth1,ltime1,ldate1;extern int crc1lw,crc1hw;      /* longint */extern int csize1lw,csize1hw;  /* longint */ extern int usize1lw,usize1hw;  /* longint */extern int namelen1,xtralen1;/* Central_directory_file_header */extern int vmb,vneed2,gpb2,cmeth2,ltime2,ldate2;extern int crc2lw,crc2hw;extern int csize2lw,csize2hw;extern int usize2lw,usize2hw;extern int namelen2,xtralen2,commlen1,nrstart;extern int inta;extern int extalw,extahw;extern int relof1lw,relof1hw;/* End_central_dir_record */extern int nrthis,nrdws,totaldt,totald;extern int sizdirlw,sizdirhw;extern int offscdlw,offscdhw;extern int commlen2;/* And a dummy string */extern char dummys[256];/*-----------------*//* Input Variables *//*-----------------*/extern FILE iocb;extern char zipfn[256];extern char command;/*------------------*//* Output Variables *//*------------------*/extern char filename[256];/*---------------------------------*/display()$(char *fn;int cntr;char method[10];  switch(cmeth1)  $(    case 0:    $(      strcpy(method,"  Stored");      break;    $)    case 1:    $(      strcpy(method,"  Shrunk");      break;    $)    case 2:    case 3:    case 4:    case 5:    $(      strcpy(method," Reduced");      break;    $)    case 6:    $(      strcpy(method,"Imploded");      break;    $)    case 8:    $(      strcpy(method,"Deflated");      break;    $)    default:    $(      strcpy(method," Unknown");    $)  $)  printf("%s  %5d  %5d ",method,csize1lw,usize1lw);  fn=filename;  cntr=0;  while(cntr<namelen1)  $(    printf("%c",*fn++);    cntr+=1;  $)  printf("\n");$)/*---------------------------------*//* Process Headers *//* 0x04034b50 only *//* skip others     */proheadv()$(int len;int skip;  len=fread(&siglw,1,4,iocb);  while(len>0)  $(    if((sighw==0x0403)&(siglw==0x4b50))  /* 0x04034b50 */    $(      len=fread(&vneed1,1,26,iocb);      if(namelen1>0)        len=fread(filename,1,namelen1,iocb);      if(xtralen1>0)        len=fread(dummys,1,xtralen1,iocb);      display();      skip=csize1lw;      while(skip>=256)      $(        len=fread(dummys,1,256,iocb);        skip-=256;      $)      if(skip>0)        len=fread(dummys,1,skip,iocb);    $)    else    $(      len=-1;    $)    if(len!=-1)      len=fread(&siglw,1,4,iocb);  $)$)/*---------------------------------*/view()$(  iocb=fopen(zipfn,"r");  if(iocb<1)  $(    printf("Can't open %s\n",zipfn);    return;  $)  printf("  Method Packed Normal Filename\n");  printf("-------- ------ ------ ------------\n");  proheadv();  close(iocb);$)/*---------------------------------*/