home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / muleos2.zip / omake.zip / delcr.c < prev    next >
C/C++ Source or Header  |  1993-10-04  |  1KB  |  71 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #include <sys/types.h>
  5. #include <sys/stat.h>
  6. #include <sys/utime.h>
  7.  
  8. unsigned char TmpName[] = "_)delcr(_.tmp" ;
  9.  
  10. unsigned char buf[1024] ;
  11. FILE    *in, *out ;
  12. struct stat sb ;
  13. struct utimbuf tb ;
  14.  
  15. main(int argc, char **argv )
  16. {
  17.     int        len ;
  18.     int        exec = 0 ;
  19.  
  20.     _wildcard( &argc, &argv ) ;
  21.     if ( argc < 2 ) {
  22.     printf( "%s [-e] files\n",argv[0] ) ;
  23.     exit( 1 ) ;
  24.     }
  25.     --argc ;
  26.     ++argv ;
  27.     if ( strcmp( *argv, "-e" ) == 0 ) {
  28.     exec = 1 ;
  29.     --argc ;
  30.     ++argv ;
  31.     }
  32.     if ( argc == 0 ) {
  33.     printf( "error!!\n" ) ;
  34.     exit( 1 ) ;
  35.     }
  36.     while ( argc-- ) {
  37.     stat( *argv, &sb ) ;
  38.     in = fopen( *argv, "rb" ) ;
  39.     fgets( buf,1024, in ) ;
  40.     len = strlen( buf ) ;
  41.     if ( buf[len -2] == '\r' || exec ) {
  42.         printf( "%s...", *argv ) ;
  43.         fflush( stdout ) ;
  44.         tb.actime  = sb.st_atime ;
  45.         tb.modtime = sb.st_mtime ;
  46.         out = fopen( TmpName, "wb" ) ;
  47.         do {
  48.         len = strlen( buf ) ;
  49.         if ( buf[len -2] == '\r' ) {
  50.             buf[len -2] = '\n' ;
  51.             buf[len -1] = '\0' ;
  52.         }
  53.         fprintf( out, "%s", buf ) ;
  54.         } while ( fgets( buf, 1024, in ) != 0 ) ;
  55.         fclose( out ) ;
  56.         fclose( in ) ;
  57.         strcpy( buf, *argv ) ;
  58.         strcat( buf, ".bak" ) ;
  59.         if ( rename( *argv, buf ) != -1 ) {
  60.         rename( TmpName, *argv ) ;
  61.         utime( *argv, &tb ) ;
  62.         }
  63.         printf( "done\n" ) ;
  64.     } else
  65.         fclose( in ) ;
  66.     ++argv ;
  67.     }
  68. }
  69.  
  70.     
  71.