home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / ARCHIVERS / lhasrc.lzh / extract.c < prev    next >
Text File  |  1992-05-13  |  1KB  |  50 lines

  1. /***********************************************************
  2.     extract.c -- extract file from archive
  3. ***********************************************************/
  4. #include "lharc.h"
  5. #include "intrface.h"
  6. extern int verify_mode;
  7.  
  8. int decode_lzhuf (infp, outfp, original_size, packed_size,name , method)
  9. FILE *infp;
  10. FILE *outfp;
  11. long original_size;
  12. long packed_size;
  13. char *name;
  14. int method;
  15. {
  16.     interface.method = method;
  17.     interface.dicbit = 13; /* method + 8; */
  18.     interface.infile = infp;
  19.     interface.outfile = outfp;
  20.     interface.original = original_size;
  21.     interface.packed = packed_size;
  22.  
  23.     switch (method) {
  24.     case 0:
  25.     case 8:
  26.         start_indicator (name, original_size, \
  27.               verify_mode ? "Testing " : "Melting ",2048);
  28.         copyfile(infp, (verify_mode ? NULL : outfp), original_size, 2);
  29.         break;
  30.     case 6: /* -lzs- */
  31.         interface.dicbit = 11;
  32.         start_indicator (name, original_size, \
  33.               verify_mode ? "Testing " : "Melting ", \
  34.               1<<interface.dicbit);
  35.         decode(&interface);
  36.         break;
  37.     case 1: /* -lh1- */
  38.     case 4: /* -lh4- */
  39.     case 7: /* -lz5- */
  40.         interface.dicbit = 12;
  41.     default:
  42.         start_indicator (name, original_size \
  43.             , verify_mode ? "Testing " : "Melting " \
  44.             , 1<<interface.dicbit);
  45.         decode(&interface);
  46.     }
  47.     finish_indicator (name, verify_mode ? "Tested  " : "Melted  ");
  48.     return mcrc;
  49. }
  50.