home *** CD-ROM | disk | FTP | other *** search
/ No Fragments Archive 10: Diskmags / nf_archive_10.iso / MAGS / ST_USER / 1990 / USEROC90.MSA / LISTINGS_TAB22.C < prev    next >
C/C++ Source or Header  |  1990-08-19  |  1KB  |  24 lines

  1. /* A 22-line utility for replacing tabs with spaces in files for the ST User
  2.    disk magazine - by Les Kneeling */
  3. #include <stdio.h>
  4. FILE *input, *output;
  5. main( argc, argv ) int argc; char **argv; {
  6. if( argc != 3 ){ puts("Use TAB22 INFILE.EXT OUTFILE.EXT"); getchar(); }
  7. else    {   input = fopen( argv[1], "br" );
  8.             if( input != 0l ) { output = fopen( argv[2], "bw" );
  9.                                 if( output != 0l ) convert();fclose( input ); }
  10. if( output != 0l) fclose( output ); }   
  11. }
  12. convert() { int out_count = 0; char offset, oc, letter;
  13. letter = fgetc( input );
  14. while( !feof( input ) ) {
  15.     if( letter == 9 ){  offset = 4-(out_count%4);
  16.                         for (oc=0; oc < offset ; oc++)  fputc( 32, output );
  17.                         out_count += offset;    }
  18.     else if( letter == 0x0a ){  fputc( letter, output );    out_count = 0;}
  19.     else{   fputc( letter, output );    out_count++;    }
  20.     if( out_count > 79 ){   fputc( 13, output );    out_count = 0;  }
  21.     letter = fgetc( input );    }
  22. }
  23.  
  24.