#include "exec/types.h"
#include "exec/memory.h"
#include "libraries/dosextens.h"
#include "libraries/dos.h"
#include "stdio.h"

main(argc,argv)
int    argc ;
char   *argv[] ;
{
    struct FileHandle   *fi, *fo ;
    int                 result ;
    char                header[4] ; 

    if (argc < 3)
     { puts (" Usage: Comp [input file] [output file]\n") ;
       exit(NULL) ;
     }
   
    if ((fi = (struct FileHandle *)Open(argv[1], MODE_OLDFILE)) == 0)
      {
        puts ("Can't open input file\n") ;
        exit (NULL) ; 
      }
    
    Read(fi, header, 4) ;
    if ((header[0] == 'P') && (header[1] == 'R') && (header[2] == 'E')) ;
    else      Seek (fi, -4, 0) ;
        
    Read(fi, header, 2) ;
	  
    if ((header[0] != 'L') || (header[1] != 'H'))
      {
        puts ("File not compressed\n");
        Close (fi) ;
        exit(NULL) ;
      }

    if ((fo = (struct FileHandle *)Open(argv[2], MODE_NEWFILE)) == 0)
      {
        puts ("Can't open output file\n") ;
        Close (fi) ;
        exit (NULL) ;
      }
 
    result = decompress (fi, fo) ;

    Close (fi) ;
    Close (fo) ;
    if      (result == 1)  puts ("Decompression failed\n") ;
    else if (result == 2)  puts ("Out of memory\n") ;
    exit(NULL) ;
}





