added a new parameter for completion flags to input_new
[midnight-commander.git] / maint / trim_changelog
blobb162514f28568309ec20ca146dfb747d44f7623d
1 #! /usr/bin/perl -w
3 # Try to format ChangeLog in the current directory.
4 # Remove unnecessary spaces. Add spaces when needed.
6 use strict;
8 my $progname = "trim_changelog";
10 # Print message and exit (like "die", but without raising an exception).
11 # System error is added at the end.
12 sub error ($)
14 print STDERR "$progname: ERROR: " . shift(@_) . ": $!\n";
15 exit 1;
18 if ($#ARGV != -1) {
19 print STDERR "$progname accepts no arguments\n";
20 exit 1;
23 open (CHANGELOG, "< ChangeLog") || error ("cannot open ChangeLog");
24 open (CHNEW, "> ChangeLog.new") || error ("cannot open ChangeLog.new");
26 # Convert initial spaces in ChangeLog to tabs.
28 while (<CHANGELOG>) {
29 # Trim trailing whitespace.
30 s/\s*$//;
32 # Make sure there are exactly 2 spaces before the e-mail.
33 s/(^\w.*[^\s])\s+</$1 </;
35 # Make sure there are exactly 2 spaces after numeric dates.
36 s/(^[0-9]+-[0-9-]+)\s+/$1 /;
38 # Up to 7 spaces and tab or up to 8 spaces -> tab.
39 if (/^( {1,7}\t| {1,8})(.*)/) {
40 $_ = "\t$2";
43 print CHNEW "$_\n";
46 close (CHANGELOG);
47 close (CHNEW);
49 system ("cmp ChangeLog ChangeLog.new >/dev/null 2>&1");
51 if (($? >> 8) == 0) {
52 unlink ("ChangeLog.new") || error ("Cannot remove ChangeLog.new");
53 print "$progname: ChangeLog has not been changed\n";
54 exit 0;
57 rename ("ChangeLog", "ChangeLog.bak") ||
58 error ("Cannot rename ChangeLog to ChangeLog.bak");
60 rename ("ChangeLog.new", "ChangeLog") ||
61 error ("Cannot rename ChangeLog.new to ChangeLog");
63 print "$progname: ChangeLog has been changed\n";