aboutsummaryrefslogtreecommitdiff
path: root/isort
blob: af7828e33efc63e38104b1aec5bce2b76c295433 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/perl -p

# isort -- sort C variable declarations separated by commas

# Extract words, save prefix.
s/([^,]*?)(\S+[,;])/$2/;
$prefix = $1;

# Ensure all words end with comma.
$semicolon = s/;$/,/;

# Sort words.
@words = sort {
	($x = $a) =~ s/^\*//;
	($y = $b) =~ s/^\*//;
	$x cmp $y
} split /\s+/;

# Join words, add prefix and semicolon.
$_ = $prefix . (join ' ', @words) . "\n";
s/,$/;/ if $semicolon;