newlib-cygwin/winsup/cygwin/scripts/sortdin

36 lines
581 B
Plaintext
Raw Normal View History

#!/usr/bin/perl
my %data = ();
my %code = ();
my @out = ();
my $fn = $ARGV[0];
while (<>) {
push(@out, $_);
/^\s*exports/i and last;
}
while (<>) {
my $key;
$arr = /\sDATA\s*$/o ? \%data : \%code;
$_ =~ s/^\s+//;
my $key = (split(' ', $_))[0];
substr($key, 0, 1) = '' while $key =~ /^_/o;
chomp $key;
$arr->{$key}->{$_} = 1;
}
for my $k (sort keys %data) {
push(@out, sort {$b cmp $a} keys %{$data{$k}});
}
for my $k (sort keys %code) {
push(@out, sort {$b cmp $a} keys %{$code{$k}});
}
open(R, '>', $fn);
print R @out;
close R;