* sortdin: New program.
* cygwin.din: Sort.
This commit is contained in:
35
winsup/cygwin/sortdin
Executable file
35
winsup/cygwin/sortdin
Executable file
@@ -0,0 +1,35 @@
|
||||
#!/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) = '' if /^_/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;
|
Reference in New Issue
Block a user