]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Cleanup: Automatically remove duplicated #include lines.
authorAlex Rousskov <rousskov@measurement-factory.com>
Wed, 30 Mar 2016 13:25:34 +0000 (02:25 +1300)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 30 Mar 2016 13:25:34 +0000 (02:25 +1300)
scripts/sort-includes.pl
src/acl/Asn.cc
src/client_side_reply.cc
src/log/access_log.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 7dfa26778b36955b23b5252493daed22f154cfb5..551c182d5e738b9e3e9970b8a91aef37eea510ac 100644 (file)
@@ -26,7 +26,6 @@
 #include "SquidConfig.h"
 #include "Store.h"
 #include "StoreClient.h"
-#include "StoreClient.h"
 
 #define WHOIS_PORT 43
 #define AS_REQBUF_SZ    4096
index 8b1750de66fd554ccc98b4692efec98fbb9cf05d..690f9ec2e7fc63eee8b3b60e41a6d4babad936c2 100644 (file)
@@ -20,7 +20,6 @@
 #include "format/Token.h"
 #include "FwdState.h"
 #include "globals.h"
-#include "globals.h"
 #include "HttpHeaderTools.h"
 #include "HttpReply.h"
 #include "HttpRequest.h"
index 1d6a1c79c8c40f1ff55a1f1633e55cbcaceaf59e..68dcae86334443368ee2aee8345137e5ca9e45fb 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"