Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(869)

Unified Diff: third_party/devscripts/licensecheck.pl

Issue 12047113: Make webview_licenses.py script to use licensecheck.pl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « android_webview/tools/webview_licenses.py ('k') | tools/checklicenses/checklicenses.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/devscripts/licensecheck.pl
diff --git a/third_party/devscripts/licensecheck.pl b/third_party/devscripts/licensecheck.pl
index 3be28de6cd40dad97ac2a3d045f5e654106f22b1..0d8ccdad424d98aef1a18724dbab4c46963719ea 100755
--- a/third_party/devscripts/licensecheck.pl
+++ b/third_party/devscripts/licensecheck.pl
@@ -164,7 +164,7 @@ my $default_ignore_regex = '
$default_ignore_regex =~ s/^#.*$//mg;
$default_ignore_regex =~ s/\n//sg;
-my $default_check_regex = '\.(c(c|pp|xx)?|h(h|pp|xx)?|f(77|90)?|p(l|m)|xs|sh|php|py(|x)|rb|java|vala|el|sc(i|e)|cs|pas|inc|dtd|xsl|mod|m|tex|mli?)$';
+my $default_check_regex = '\.(c(c|pp|xx)?|h(h|pp|xx)?|f(77|90)?|p(l|m)|xs|sh|php|py(|x)|rb|java|vala|el|sc(i|e)|cs|pas|inc|dtd|xsl|mod|m|tex|mli?|js|html|pac|mm|asm|idl)$';
Paweł Hajdan Jr. 2013/01/29 09:29:38 nit: Please move "mm" case near existing "m", chan
my $modified_conf_msg;
@@ -288,12 +288,26 @@ while (@files) {
my $copyright_match;
my $copyright = '';
my $license = '';
+ my $line;
my %copyrights;
open (F, "<$file") or die "Unable to access $file\n";
while (<F>) {
- last if ($. > $opt_lines);
- $content .= $_;
+ unless ($. > $opt_lines) {
+ $content .= $_;
+ next unless ($opt_copyright);
+ } else {
+ last unless ($opt_copyright);
+ }
+ $line = $_;
+ # Remove C / C++ strings to avoid false positives.
+ if (index($line, '"') != -1) {
+ $line =~ s/"[^"\\]*(?:\\.[^"\\]*)*"//g;
+ }
+ $copyright_match = parse_copyright($line);
+ if ($copyright_match) {
+ $copyrights{lc("$copyright_match")} = "$copyright_match";
+ }
}
close(F);
@@ -326,6 +340,16 @@ while (@files) {
}
sub parse_copyright($) {
+
+ my $line = $_[0];
+ my $uc_line = uc($line);
+ # Fast bailout, uses the same patterns as the regexp.
+ return '' if (index($uc_line, 'COPYRIGHT') == -1 &&
+ index($uc_line, 'COPR.') == -1 &&
+ index($uc_line, '\x{00a9}') == -1 &&
+ index($uc_line, '\xc2\xa9') == -1 &&
+ index($uc_line, '(C)') == -1);
+
my $copyright = '';
my $match;
@@ -342,7 +366,7 @@ sub parse_copyright($) {
|and|or # Part of a sentence
)\b';
- if (m%$copyright_indicator_regex(?::\s*|\s+)(\S.*)$%ix) {
+ if ($line =~ m%\W$copyright_indicator_regex(?::\s*|\s+)(\w.*)$%ix) {
$match = $1;
# Ignore lines matching "see foo for copyright information" etc.
@@ -404,6 +428,7 @@ EOF
sub parselicense($) {
my ($licensetext) = @_;
+ my $upcase_licensetext = uc($licensetext);
my $gplver = "";
my $extrainfo = "";
@@ -423,8 +448,14 @@ sub parselicense($) {
$extrainfo = " (with Qt exception)$extrainfo"
}
- if ($licensetext =~ /(All changes made in this file will be lost|DO NOT (EDIT|delete this file)|Generated (automatically|by|from)|generated.*file)/i) {
- $license = "GENERATED FILE";
+ # The regexp is slow. First, do a quick check using index.
+ if (index($upcase_licensetext, 'ALL CHANGES MADE IN THIS FILE WILL BE LOST') != -1 ||
+ index($upcase_licensetext, 'DO NOT EDIT') != -1 ||
+ index($upcase_licensetext, 'DO NOT DELETE') != -1 ||
+ index($upcase_licensetext, 'GENERATED') != -1) {
+ if ($licensetext =~ /(All changes made in this file will be lost|DO NOT (EDIT|delete this file)|Generated (at|automatically|data|by|from)|Automatically generated|\Wgenerated\s+(?:\w+\s+)*file\W)/i) {
+ $license = "GENERATED FILE";
+ }
}
if ($licensetext =~ /is (free software.? you can redistribute it and\/or modify it|licensed) under the terms of (version [^ ]+ of )?the (GNU (Library |Lesser )General Public License|LGPL)/i) {
« no previous file with comments | « android_webview/tools/webview_licenses.py ('k') | tools/checklicenses/checklicenses.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698