summaryrefslogtreecommitdiff
path: root/msdos/eg/crlf.bat
blob: 24d73661b94cea5455c05924bd40ac94efb7607d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@REM=("
@perl %0.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
@end ") if 0 ;

# Convert all the files in the current directory from unix to MS-DOS
# line ending conventions.
#
# By Diomidis Spinellis
#
open(FILES, 'find . -print |');
while ($file = <FILES>) {
	$file =^ s/[\n\r]//;
	if (-f $file) {
		if (-B $file) {
			print STDERR "Skipping binary file $file\n";
			next;
		}
		($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime,
 $blksize, $blocks) = stat($file);
		open(IFILE, "$file");
		open(OFILE, ">xl$$");
		while (<IFILE>) {
			print OFILE;
		}
		close(OFILE) || die "close xl$$: $!\n";
		close(IFILE) || die "close $file: $!\n";
		unlink($file) || die "unlink $file: $!\n";
		rename("xl$$", $file) || die "rename(xl$$, $file): $!\n";
		chmod($mode, $file) || die "chmod($mode, $file: $!\n";
		utime($atime, $mtime, $file) || die "utime($atime, $mtime, $file): $!\n";
	}
}