#! /usr/bin/perl -w use strict; use IO::File; use File::Compare; use File::Copy; for my $file (@ARGV) { my $in = new IO::File ($file) or die; my $out = new IO::File ("> $file.ws") or die; while ($_ = $in->getline) { chomp; # Trailing. s/\s+$//; # Leading. while (s/^(\t*) {8}/$1\t/ || s/^(\t+) {1,7}\t/$1\t/) { # Nada. } print $out "$_\n"; } $in->close || die; $out->close || die; if (compare ("$file", "$file.ws") != 0) { move ("$file", "$file.bak") || die $file; copy ("$file.ws", "$file") || die $file; } else { unlink ("$file.ws") || die $file; } } ### Setup "GNU" style for perl-mode and cperl-mode. ## Local Variables: ## perl-indent-level: 2 ## perl-continued-statement-offset: 2 ## perl-continued-brace-offset: 0 ## perl-brace-offset: 0 ## perl-brace-imaginary-offset: 0 ## perl-label-offset: -2 ## cperl-indent-level: 2 ## cperl-brace-offset: 0 ## cperl-continued-brace-offset: 0 ## cperl-label-offset: -2 ## cperl-extra-newline-before-brace: t ## cperl-merge-trailing-else: nil ## cperl-continued-statement-offset: 2 ## End: