home *** CD-ROM | disk | FTP | other *** search
/ The Amiga Game Guide / AmigaGameGuide_CD.iso / PC / Tools / chunker / source / chunker.c < prev    next >
C/C++ Source or Header  |  1977-12-31  |  1KB  |  77 lines

  1. /*************************************************************************
  2.  *
  3.  * Chunker
  4.  *
  5.  * Copyright ©1995 Lee Kindness
  6.  * cs2lk@scms.rgu.ac.uk
  7.  *
  8.  * chunker.c
  9.  */
  10.  
  11. #include "chunker.h"
  12.  
  13.  
  14. /*************************************************************************
  15.  * main() - DaDDDaaah!
  16.  */
  17.  
  18. int main(int argc, char **argv)
  19. {
  20.     long ret = 10;
  21.     /* init */
  22.     if( InitSystem() )
  23.     {
  24.         struct Args *args;
  25.         
  26.         if( args = GetChunkerArgs(argc, argv) )
  27.         {
  28.             FILEt source;
  29.             
  30.             /* Open input file */
  31.             if( source = OS_fopen(args->arg_Filename, FILEOPEN_READ) )
  32.             {
  33.                 char *destname;
  34.                 long num = 0;
  35.                 FILEt dest = NULL;
  36.  
  37.                 if( (destname = BuildFName(args->arg_Basename, &num)) &&
  38.                     (dest = OS_fopen(destname, FILEOPEN_WRITE)) )
  39.                 {
  40.                     register long n = 0;
  41.                     register int c;
  42.                     
  43.                     OS_printf("%s\n", destname);
  44.                     
  45.                     for( c = OS_fgetc(source);
  46.                          c != EOF;
  47.                          c = OS_fgetc(source), ++n)
  48.                     {
  49.                         if( n == args->arg_Size )
  50.                         {
  51.                             FreeFName(destname);
  52.                             OS_fclose(dest);
  53.                             destname = BuildFName(args->arg_Basename, &num);
  54.                             OS_printf("%s\n", destname);
  55.                             dest = OS_fopen(destname, FILEOPEN_WRITE);
  56.                             n = 0;
  57.                         }
  58.                         OS_fputc(c, dest);
  59.                     }
  60.                 }
  61.                 FreeFName(destname);
  62.                 OS_fclose(dest);
  63.                 OS_fclose(source);
  64.                 
  65.                 ret = 0;
  66.             } else
  67.                 OS_printf("Can't open %s\n", args->arg_Filename);
  68.             
  69.             FreeChunkerArgs(args);
  70.             
  71.         } /* else arg fail */
  72.         
  73.         FreeSystem();    
  74.     }
  75.     return( ret );
  76. }
  77.