From 5722f9247b6760978f759d0fd14ac30ce296abaf Mon Sep 17 00:00:00 2001 From: Chih-Hung Hsieh Date: Tue, 11 Oct 2016 15:33:19 -0700 Subject: [PATCH] Better pattern matching and dump of warning messages. * Warning messages must start with source file path. This will reject lines containing only 'warning:' but not a source file path prefix. * Escape both backslash and quotation marks in the dump of strings to JavaScript string literals. Bug: 32060052 Test: run through build.log files Change-Id: Ib064768b1ba2954f974604ea054f7a6d2ad15ae7 --- tools/warn.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/warn.py b/tools/warn.py index ea1cd2288..7abca32fa 100755 --- a/tools/warn.py +++ b/tools/warn.py @@ -2028,7 +2028,8 @@ def parse_input_file(): infile = open(args.buildlog, 'r') line_counter = 0 - warning_pattern = re.compile('.* warning:.*') + # handle only warning messages with a file path + warning_pattern = re.compile('^[^ ]*/[^ ]*: warning: .*') compile_patterns() # read the log file and classify all the warnings @@ -2055,9 +2056,9 @@ def parse_input_file(): target_variant = m.group(0) -# Return s with escaped quotation characters. +# Return s with escaped backslash and quotation characters. def escape_string(s): - return s.replace('"', '\\"') + return s.replace('\\', '\\\\').replace('"', '\\"') # Return s without trailing '\n' and escape the quotation characters. -- 2.11.0