# Do we need to back up to find the start of the copyright header?
start = i ifnot first_line_was_hash: while start > 0: if"/*"in lines[start - 1]: break
start -= 1
# Read comment lines until we hit something that terminates a # copyright header. while i < len(lines): if is_copyright_end(lines[i], first_line_was_hash): break
i += 1
end = i
# Trim trailing cruft. while end > 0:
line = lines[end - 1] if line notin { " *", " * ===================================================="
}: break
end -= 1
# Remove C/assembler comment formatting, pulling out just the text.
clean_lines = [] for line in lines[start:end]:
line = line.replace("\t", " ")
line = line.replace("/* ", "")
line = re.sub(r"^ \* ", "", line)
line = line.replace("** ", "")
line = line.replace("# ", "") if line.startswith("++Copyright++"): continue
line = line.replace("--Copyright--", "")
line = line.rstrip() # These come last and take care of "blank" comment lines. if line in {"#", " *", "**", "-"}:
line = ""
clean_lines.append(line)
# Trim blank lines from head and tail. while clean_lines[0] == "":
clean_lines = clean_lines[1:] while clean_lines[len(clean_lines) - 1] == "":
clean_lines = clean_lines[0:(len(clean_lines) - 1)]
if len(lines) <= 4:
warn_verbose("ignoring short file %s" % path) return
ifnot"Copyright"in content: if"public domain"in content.lower():
warn_verbose("ignoring public domain file %s" % path) return
warn('no copyright notice found in "%s" (%d lines)' %
(path, len(lines))) return
# Skip over our own files if they're SPDX licensed. # Because we use the // comment style, without this we'd copy the whole source file! if re.compile(r'^// Copyright \(C\) 2\d\d\d The Android Open Source Project\n' + \ '// SPDX-License-Identifier: ').match(content): return
# Manually iterate because extract_copyright_at tells us how many lines to # skip.
i = 0 while i < len(lines): if"Copyright"in lines[i] andnot"@(#) Copyright" in lines[i]:
i = extract_copyright_at(lines, i) else:
i += 1
def do_dir(arg): for directory, sub_directories, filenames in os.walk(arg): if".git"in sub_directories:
sub_directories.remove(".git")
sub_directories = sorted(sub_directories)
for filename in sorted(filenames):
path = os.path.join(directory, filename) if is_interesting(path):
do_file(path)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.