Merge "Better pattern matching and dump of warning messages."
diff --git a/tools/warn.py b/tools/warn.py
index e7e877d..3c75825 100755
--- a/tools/warn.py
+++ b/tools/warn.py
@@ -2078,7 +2078,8 @@
   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
@@ -2103,9 +2104,9 @@
         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.