]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup: Automatically remove duplicated #include lines.
authorAlex Rousskov <rousskov@measurement-factory.com>
Tue, 29 Mar 2016 16:58:12 +0000 (10:58 -0600)
committerAlex Rousskov <rousskov@measurement-factory.com>
Tue, 29 Mar 2016 16:58:12 +0000 (10:58 -0600)
scripts/sort-includes.pl
src/client_side_reply.cc
src/log/access_log.cc
src/security/PeerOptions.cc
src/tests/testHttp1Parser.cc

index 5c81e66d890d3fa237590c07618bbaa8c84787cc..6252dd2e38d085053107d237e309cba36480ff7f 100755 (executable)
@@ -7,8 +7,6 @@
 ## Please see the COPYING and CONTRIBUTORS files for details.
 ##
 
-# AUTHOR: Francesco Chemolli <kinkie@squid-cache.org>
-#
 # USAGE: sort-includes.pl filename.cc >filename.cc.sorted
 #
 # This tool helps to sort the #include directives in a c or c++ source file
 
 use strict;
 use warnings;
-my @acc=(); #if empty, we're not accumulating
+
+my %Seen = (); # preprocessor #include lines, indexed by file name
+
 while (<>) {
-  if (m!^#include "!) {
-    if (m!squid.h!) {
-      print;
-    } else {
-      push @acc,$_;
+  if (/^\s*#\s*include\s*"(.+?)"/) {
+    my $fname = $1;
+    # skip repeated file names that have identical #include lines
+    if (defined $Seen{$fname}) {
+      next if $Seen{$fname} eq $_;
+      warn("$ARGV:$.: Warning: inconsistent $fname #include lines:\n");
+      warn("    $Seen{$fname}");
+      warn("    $_");
+      # fall through to preserve every unique #include line
     }
+    $Seen{$fname} = $_;
   } else {
-    &dump_acc;
+    &dumpSeen();
     print;
   }
 }
-&dump_acc;
+&dumpSeen();
 
-sub dump_acc {
-  return unless @acc;
-  print sort {lc($a) cmp lc($b)} @acc;
-  @acc=();
+sub dumpSeen {
+  my $alwaysFirst = 'squid.h';
+  if (defined $Seen{$alwaysFirst}) {
+    print $Seen{$alwaysFirst};
+    delete $Seen{$alwaysFirst};
+  }
+  print sort { lc($a) cmp lc($b) } values %Seen;
+  %Seen = ();
 }
index 507142eba591c8265d4552f5cec1c9047cb1a345..d744cbfce4b3a1b6dcc611773121311c9b08754b 100644 (file)
@@ -20,7 +20,6 @@
 #include "format/Token.h"
 #include "FwdState.h"
 #include "globals.h"
-#include "globals.h"
 #include "http/Stream.h"
 #include "HttpHeaderTools.h"
 #include "HttpReply.h"
index a3fc35a4b0c41e2c39f5762f62492f0a8e84237d..314ef5402de6e75d0ca36909a521b5d7113d6adf 100644 (file)
@@ -17,8 +17,6 @@
 #include "CachePeer.h"
 #include "err_detail_type.h"
 #include "errorpage.h"
-#include "errorpage.h"
-#include "errorpage.h"
 #include "format/Token.h"
 #include "globals.h"
 #include "hier_code.h"
index 5f21437d3f083900744209a34df84d0a3468e0fc..74c7a9673c145d27aa7c229a1281e8f6634f3c95 100644 (file)
@@ -12,7 +12,6 @@
 #include "fatal.h"
 #include "globals.h"
 #include "parser/Tokenizer.h"
-#include "parser/Tokenizer.h"
 #include "Parsing.h"
 #include "security/PeerOptions.h"
 
index b01e786fccc019e3a7faf6372a6b822d7092d5a5..446e409121034409ad8079902745b021e2c69790 100644 (file)
@@ -19,7 +19,6 @@
 #include "MemBuf.h"
 #include "SquidConfig.h"
 #include "testHttp1Parser.h"
-#include "testHttp1Parser.h"
 #include "unitTestMain.h"
 
 CPPUNIT_TEST_SUITE_REGISTRATION( testHttp1Parser );