#!/usr/bin/perl
#  sburke~cpan.org    Time-stamp: "2005-08-19 01:58:02 ADT"
# desc{  says what newline format a file uses   }

die "Usage: whatnewline [filename]\nReports what newline format a file uses\n"
 unless @ARGV;

require 5.006;
$/ = \10240;
$_ = <>;

%x = ("\cm" => 0, "\cm\cj" => 0, "\cj" => 0);

while( m/(\cm\cj*|\cj)/g ) {
  ++$x{$1};
}

print "In the first ", length($_), " bytes...\n";

foreach my $k (sort keys %x) {
  $_ = $k;
  s/\cm/CR /g;
  s/\cj/LF /g;
  s/\s+$//s;
  printf "% 5s x %10s   %s\n", $x{$k}, $_,
      $_ eq 'CR'    ? '(old MacOS)'
    : $_ eq 'LF'    ? '(Unix)'
    : $_ eq 'CR LF' ? '(MSDOS)' : '';
}
exit;

#
# Some simple newline conversions:
#
#  perl -e '$/ = \1024; while(<>){tr/\015/\012/;print}' < mac.txt > unix.txt
#  perl -e '$/ = \1024; while(<>){tr/\015//d;print}'    < dos.txt > unix.txt
#
