On 12/11/2012 03:27 PM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange" <berrange(a)redhat.com>
Add check-symsorting.pl to perform case-insensitive alphabetical
sorting of groups of symbols. Fix all violations it reports
Signed-off-by: Daniel P. Berrange <berrange(a)redhat.com>
---
src/Makefile.am | 4 +-
src/check-symsorting.pl | 66 +++++++++++++++++++
src/libvirt_esx.syms | 2 +-
src/libvirt_openvz.syms | 2 +-
src/libvirt_private.syms | 161 ++++++++++++++++++++++++-----------------------
5 files changed, 152 insertions(+), 83 deletions(-)
create mode 100644 src/check-symsorting.pl
diff --git a/src/check-symsorting.pl b/src/check-symsorting.pl
new file mode 100644
chmod +x
index 0000000..9c62246
--- /dev/null
+++ b/src/check-symsorting.pl
@@ -0,0 +1,66 @@
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+die "syntax: $0 SYMFILE..." unless int(@ARGV) >= 1;
+
+my $ret = 0;
+foreach my $symfile (@ARGV) {
+ open SYMFILE, $symfile or die "cannot read $symfile: $!";
+
+ my $line;
+ my @group;
+
+ while (<SYMFILE>) {
+ chomp;
+ next if /^#/;
+
+ if (/^\s*$/) {
+ if (@group) {
+ &check_sorting(\@group, $symfile, $line);
So perl lets you call a function...
+ }
+ @group = ();
+ $line = $.;
+ } else {
+ $_ =~ s/;//;
+ push @group, $_;
+ }
+ }
+
+ close SYMFILE;
+ if (@group) {
+ &check_sorting(\@group, $symfile, $line);
+ }
+}
+
+sub check_sorting {
...that is defined later in the file. I would have swapped the main
loop to come after the 'sub', but not a show-stopper.
ACK.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org