Add exceptions to max_cols rule.
Review URL: http://codereview.chromium.org/42019

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@11340 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 6809548..5744641 100755
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -64,6 +64,7 @@
 
   Note that the whole file is checked, not only the changes.
   """
+  C_SOURCE_FILE_EXTENSIONS = ('.c', '.cc', '.cpp', '.h', '.inl')
   cr_files = []
   eof_files = []
   results = []
@@ -103,8 +104,13 @@
         local_errors.append(output_api.PresubmitError(
             '%s, line %s ends with whitespaces.' %
             (path, line_num)))
-      # Accept lines with http:// to exceed the max_cols rule.
-      if max_cols and len(line) > max_cols and not 'http://' in line:
+      # Accept lines with http://, https:// and C #define/#pragma/#include to
+      # exceed the max_cols rule.
+      if (max_cols and
+          len(line) > max_cols and
+          not 'http://' in line and
+          not 'https://' in line and
+          not (line[0] == '#' and ext in C_SOURCE_FILE_EXTENSIONS)):
         local_errors.append(output_api.PresubmitError(
             '%s, line %s has %s chars, please reduce to %d chars.' %
             (path, line_num, len(line), max_cols)))