forked from mirrors/gecko-dev
		
	
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # This Source Code Form is subject to the terms of the Mozilla Public
 | |
| # License, v. 2.0. If a copy of the MPL was not distributed with this
 | |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/.
 | |
| 
 | |
| import os
 | |
| import re
 | |
| 
 | |
| from mozlint.types import LineType
 | |
| 
 | |
| here = os.path.abspath(os.path.dirname(__file__))
 | |
| HEADERS_FILE = os.path.join(here, "mingw-headers.txt")
 | |
| # generated by cd mingw-w64/mingw-w64-headers &&
 | |
| #  find . -name "*.h" | xargs -I bob -- basename bob | sort | uniq)
 | |
| 
 | |
| 
 | |
| class MinGWCapitalization(LineType):
 | |
|     def __init__(self, *args, **kwargs):
 | |
|         super(MinGWCapitalization, self).__init__(*args, **kwargs)
 | |
|         with open(HEADERS_FILE, "r") as fh:
 | |
|             self.headers = fh.read().strip().splitlines()
 | |
|         self.regex = re.compile("^#include\s*<(" + "|".join(self.headers) + ")>")
 | |
| 
 | |
|     def condition(self, payload, line, config):
 | |
|         if not line.startswith("#include"):
 | |
|             return False
 | |
| 
 | |
|         if self.regex.search(line, re.I):
 | |
|             return not self.regex.search(line)
 | |
| 
 | |
| 
 | |
| def lint(paths, config, **lintargs):
 | |
|     results = []
 | |
| 
 | |
|     m = MinGWCapitalization()
 | |
|     for path in paths:
 | |
|         results.extend(m._lint(path, config, **lintargs))
 | |
|     return results
 | 
