165de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich#!/usr/bin/perl 265de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich 365de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich# This is a script for removing trailing whitespace from lines in files that 465de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich# are listed on the command line. 565de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich 665de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich# This subroutine does the work for one file. 765de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich 865de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevichsub detrail { 965de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevichmy($file) = $_[0]; 1065de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevichmy($changed) = 0; 1165de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevichopen(IN, "$file") || die "Can't open $file for input"; 1265de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich@lines = <IN>; 1365de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevichclose(IN); 1465de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevichforeach (@lines) 1565de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich { 1665de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich if (/\s+\n$/) 1765de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich { 1865de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich s/\s+\n$/\n/; 1965de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich $changed = 1; 2065de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich } 2165de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich } 2265de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevichif ($changed) 2365de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich { 2465de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich open(OUT, ">$file") || die "Can't open $file for output"; 2565de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich print OUT @lines; 2665de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich close(OUT); 2765de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich } 2865de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich} 2965de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich 3065de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich# This is the main program 3165de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich 3265de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich$, = ""; # Output field separator 3365de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevichfor ($i = 0; $i < @ARGV; $i++) { &detrail($ARGV[$i]); } 3465de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich 3565de34233da93a3d65c00b8aad3ff9aad44c57deNick Kralevich# End 36