home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 5 Edit
/
05-Edit.zip
/
muleos2.zip
/
omake.zip
/
delcr.c
< prev
next >
Wrap
C/C++ Source or Header
|
1993-10-04
|
1KB
|
71 lines
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/utime.h>
unsigned char TmpName[] = "_)delcr(_.tmp" ;
unsigned char buf[1024] ;
FILE *in, *out ;
struct stat sb ;
struct utimbuf tb ;
main(int argc, char **argv )
{
int len ;
int exec = 0 ;
_wildcard( &argc, &argv ) ;
if ( argc < 2 ) {
printf( "%s [-e] files\n",argv[0] ) ;
exit( 1 ) ;
}
--argc ;
++argv ;
if ( strcmp( *argv, "-e" ) == 0 ) {
exec = 1 ;
--argc ;
++argv ;
}
if ( argc == 0 ) {
printf( "error!!\n" ) ;
exit( 1 ) ;
}
while ( argc-- ) {
stat( *argv, &sb ) ;
in = fopen( *argv, "rb" ) ;
fgets( buf,1024, in ) ;
len = strlen( buf ) ;
if ( buf[len -2] == '\r' || exec ) {
printf( "%s...", *argv ) ;
fflush( stdout ) ;
tb.actime = sb.st_atime ;
tb.modtime = sb.st_mtime ;
out = fopen( TmpName, "wb" ) ;
do {
len = strlen( buf ) ;
if ( buf[len -2] == '\r' ) {
buf[len -2] = '\n' ;
buf[len -1] = '\0' ;
}
fprintf( out, "%s", buf ) ;
} while ( fgets( buf, 1024, in ) != 0 ) ;
fclose( out ) ;
fclose( in ) ;
strcpy( buf, *argv ) ;
strcat( buf, ".bak" ) ;
if ( rename( *argv, buf ) != -1 ) {
rename( TmpName, *argv ) ;
utime( *argv, &tb ) ;
}
printf( "done\n" ) ;
} else
fclose( in ) ;
++argv ;
}
}