diff options
Diffstat (limited to 'util/sort-includes')
-rwxr-xr-x | util/sort-includes | 91 |
1 files changed, 0 insertions, 91 deletions
diff --git a/util/sort-includes b/util/sort-includes deleted file mode 100755 index 8ae40be52..000000000 --- a/util/sort-includes +++ /dev/null @@ -1,91 +0,0 @@ -#! /usr/bin/env perl -# Copyright (c) 2003 The Regents of The University of Michigan -# All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are -# met: redistributions of source code must retain the above copyright -# notice, this list of conditions and the following disclaimer; -# redistributions in binary form must reproduce the above copyright -# notice, this list of conditions and the following disclaimer in the -# documentation and/or other materials provided with the distribution; -# neither the name of the copyright holders nor the names of its -# contributors may be used to endorse or promote products derived from -# this software without specific prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -# -# Authors: Steve Reinhardt - -open (FOO, "<$ARGV[0]") or die; - -# Suck in everything before the first include -# (line-by-line into @before list). -while (($_ = <FOO>) && !/^#include/) { - push @before, $_; -} - -#print join("", @before); -#print "##########################\n"; - -# Suck in include lines into @includes list. -# Skip blank lines (keep processing, but don't put in @includes). -# End on first non-blank, non-include line. -# Note that this means that files with comments or #ifdefs -# interspersed among their #includes will only get the initial -# set of #includes sorted. -do { - push @includes, $_ unless /^\s*$/; -} while (($_ = <FOO>) && /^#include|^\s*$/); - -# Now sort the includes. This simple ordering function -# puts system includes first, followed by non-system includes. -# Within each group the sort is alphabetical. -# We may want something a little more sophisticated. -# Personally, I'd like to see something like: -# <sys/*.h> - header files from sys subdir -# <*.h> - other system headers -# <*> - STL headers -# "base/*" - M5 base headers -# "sim/*" - M5 sim headers -# "*" - other M5 headers -# ...but I didn't have the energy to code that up. -sub sortorder { - my $sysa = ($a =~ /<.*>/); - my $sysb = ($b =~ /<.*>/); - return -1 if ($sysa && !$sysb); - return 1 if ($sysb && !$sysa); - return $a cmp $b; -} - -@includes = sort sortorder @includes; -#print join("", @includes); -#print "##########################\n"; - -# Put everything after the includes in the @after list. -do { - push @after, $_; - if (/^#include/) { - print "$ARGV[0]: "; - print $after[0]; - exit 0; - } -} while ($_ = <FOO>); - -#print join("", @after); -#print "##########################\n"; - -# Print out the file with sorted includes. - -print join("", @before, @includes, @after); - |