diff --git a/modules/database/src/tools/DBD.pm b/modules/database/src/tools/DBD.pm index e541ad8f7..e6051a48f 100644 --- a/modules/database/src/tools/DBD.pm +++ b/modules/database/src/tools/DBD.pm @@ -128,6 +128,11 @@ sub add_record { sub record_names { return @{shift->{RECORDS}}; } +sub sort_records { + my $this = shift; + my @sorted = sort @{$this->{RECORDS}}; + $this->{RECORDS} = \@sorted; +} sub registrars { return shift->{'DBD::Registrar'}; diff --git a/modules/database/src/tools/dbExpand.pl b/modules/database/src/tools/dbExpand.pl index 888ccb52d..425d22792 100644 --- a/modules/database/src/tools/dbExpand.pl +++ b/modules/database/src/tools/dbExpand.pl @@ -22,10 +22,10 @@ use EPICS::Getopts; use EPICS::Readfile; use EPICS::macLib; -our ($opt_D, @opt_I, @opt_S, $opt_o, $opt_V); +our ($opt_D, @opt_I, @opt_S, $opt_o, $opt_s, $opt_V); -getopts('DI@S@o:V') or - die "Usage: dbExpand [-D] [-I dir] [-S macro=val] [-o out.db] in.dbd in.db ..."; +getopts('DI@S@so:V') or + die "Usage: dbExpand [-D] [-I dir] [-S macro=val] [-s] [-o out.db] in.dbd in.db ..."; my @path = map { split /[:;]/ } @opt_I; # FIXME: Broken on Win32? my $macros = EPICS::macLib->new(@opt_S); @@ -74,6 +74,9 @@ if ($opt_D) { # Output dependencies only, ignore errors die "dbExpand.pl: Exiting due to errors\n" if $errors; +$dbd->sort_records + unless $opt_s; + my $out; if ($opt_o) { open $out, '>', $opt_o or die "Can't create $opt_o: $!\n";