Index: android_webview/tools/find_copyrights.pl |
diff --git a/android_webview/tools/find_copyrights.pl b/android_webview/tools/find_copyrights.pl |
deleted file mode 100755 |
index 494b9883ab3abe86d7a3f1361ecbfcf0af1fe19a..0000000000000000000000000000000000000000 |
--- a/android_webview/tools/find_copyrights.pl |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
-#!/usr/bin/perl -w |
-# Copyright 2013 The Chromium Authors. All rights reserved. |
-# Use of this source code is governed by a BSD-style license that can be |
-# found in the LICENSE file. |
- |
-# Use: echo filename1.cc ... | find_copyrights.pl |
-# or: find_copyrights.pl list_file |
-# or: find_files.pl ... | find_copyrights.pl |
- |
-use strict; |
-use warnings; |
-use File::Basename; |
- |
-sub check_is_generated_file($); |
-sub start_copyright_parsing(); |
- |
-my $progname = basename($0); |
- |
-my $generated_file_scan_boundary = 25; |
-while (<>) { |
- chomp; |
- my $file = $_; |
- my $file_header = ''; |
- my %copyrights; |
- open (F, "<$file") or die "$progname: Unable to access $file\n"; |
- my $parse_copyright = start_copyright_parsing(); |
- while (<F>) { |
- $file_header .= $_ unless $. > $generated_file_scan_boundary; |
- my $copyright_match = $parse_copyright->($_, $.); |
- if ($copyright_match) { |
- $copyrights{lc("$copyright_match")} = "$copyright_match"; |
- } |
- } |
- close(F); |
- my $copyright = join(" / ", sort values %copyrights); |
- print "$file\t"; |
- if (check_is_generated_file($file_header)) { |
- print "GENERATED FILE"; |
- } else { |
- print ($copyright or "*No copyright*"); |
- } |
- print "\n"; |
-} |
- |
-sub check_is_generated_file($) { |
- my $license = uc($_[0]); |
- # Remove Python multiline comments to avoid false positives |
- if (index($license, '"""') != -1) { |
- $license =~ s/"""[^"]*(?:"""|$)//mg; |
- } |
- if (index($license, "'''") != -1) { |
- $license =~ s/'''[^']*(?:'''|$)//mg; |
- } |
- # Quick checks using index. |
- if (index($license, 'ALL CHANGES MADE IN THIS FILE WILL BE LOST') != -1) { |
- return 1; |
- } |
- if (index($license, 'DO NOT EDIT') != -1 || |
- index($license, 'DO NOT DELETE') != -1 || |
- index($license, 'GENERATED') != -1) { |
- return ($license =~ /(All changes made in this file will be lost' . |
- 'DO NOT (EDIT|delete this file)|Generated (at|automatically|data)' . |
- '|Automatically generated|\Wgenerated\s+(?:\w+\s+)*file\W)/i); |
- } |
- return 0; |
-} |
- |
-sub are_within_increasing_progression($$$) { |
- my $delta = $_[0] - $_[1]; |
- return $delta >= 0 && $delta <= $_[2]; |
-} |
- |
-sub start_copyright_parsing() { |
- my $max_line_numbers_proximity = 3; |
- # Set up the defaults the way that proximity checks will not succeed. |
- my $last_a_item_line_number = -200; |
- my $last_b_item_line_number = -100; |
- |
- return sub { |
- my $line = $_[0]; |
- my $line_number = $_[1]; |
- |
- # Remove C / C++ strings to avoid false positives. |
- if (index($line, '"') != -1) { |
- $line =~ s/"[^"\\]*(?:\\.[^"\\]*)*"//g; |
- } |
- |
- my $uc_line = uc($line); |
- |
- # Record '(a)' and '(b)' last occurences in C++ comments. |
- my $cpp_comment_idx = index($uc_line, '//'); |
- if ($cpp_comment_idx != -1) { |
- if (index($uc_line, '(A)') > $cpp_comment_idx) { |
- $last_a_item_line_number = $line_number; |
- } |
- if (index($uc_line, '(B)') > $cpp_comment_idx) { |
- $last_b_item_line_number = $line_number; |
- } |
- } |
- |
- # Fast bailout, uses the same patterns as the regexp. |
- if (index($uc_line, 'COPYRIGHT') == -1 && |
- index($uc_line, 'COPR.') == -1 && |
- index($uc_line, '\x{00a9}') == -1 && |
- index($uc_line, '\xc2\xa9') == -1) { |
- |
- my $c_item_index = index($uc_line, '(C)'); |
- return '' if ($c_item_index == -1); |
- # Filter out 'c' used as a list item inside C++ comments. |
- # E.g. "// blah-blah (a) blah\n// blah-blah (b) and (c) blah" |
- if ($c_item_index > $cpp_comment_idx && |
- are_within_increasing_progression( |
- $line_number, |
- $last_b_item_line_number, |
- $max_line_numbers_proximity) && |
- are_within_increasing_progression( |
- $last_b_item_line_number, |
- $last_a_item_line_number, |
- $max_line_numbers_proximity)) { |
- return ''; |
- } |
- } |
- |
- my $copyright_indicator_regex = |
- '(?:copyright|copr\.|\x{00a9}|\xc2\xa9|\(c\))'; |
- my $full_copyright_indicator_regex = |
- sprintf '(?:\W|^)%s(?::\s*|\s+)(\w.*)$', $copyright_indicator_regex; |
- my $copyright_disindicator_regex = |
- '\b(?:info(?:rmation)?|notice|and|or)\b'; |
- |
- my $copyright = ''; |
- if ($line =~ m%$full_copyright_indicator_regex%i) { |
- my $match = $1; |
- if ($match !~ m%^\s*$copyright_disindicator_regex%i) { |
- $match =~ s/([,.])?\s*$//; |
- $match =~ s/$copyright_indicator_regex//ig; |
- $match =~ s/^\s+//; |
- $match =~ s/\s{2,}/ /g; |
- $match =~ s/\\@/@/g; |
- $copyright = $match; |
- } |
- } |
- |
- return $copyright; |
- } |
-} |