MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / check_include_guard_name

Function check_include_guard_name

addons/namingng.py:168–197  ·  view source on GitHub ↗
(conf,directive)

Source from the content-addressed store, hash-verified

166 reportNamingError(mockToken,msg)
167
168def check_include_guard_name(conf,directive):
169 parts = directive.str.split()
170 if len(parts) != 2:
171 msg = 'syntax error'
172 reportNamingError(directive,msg,'syntax')
173 return None,None
174 guard_name = parts[1]
175 guard_column = 1+directive.str.find(guard_name)
176
177 filename = directive.file
178 if conf.include_guard.get('input','path') == 'basename':
179 filename = os.path.basename(filename)
180 use_case = conf.include_guard.get('case','upper')
181 if use_case == 'upper':
182 filename = filename.upper()
183 elif use_case == 'lower':
184 filename = filename.lower()
185 elif use_case == 'keep':
186 pass # keep filename case as-is
187 else:
188 print("invalid config value for 'case': '%s'"%use_case,file=sys.stderr)
189 sys.exit(1)
190
191 barename = re.sub('[^A-Za-z0-9]','_',filename).strip('_')
192 expect_guard_name = conf.include_guard.get('prefix','') + barename + conf.include_guard.get('suffix','')
193 if expect_guard_name != guard_name:
194 msg = 'include guard naming violation; %s != %s'%(guard_name,expect_guard_name)
195 reportNamingError(directive,msg,'includeGuardName',column=guard_column)
196
197 return guard_name,guard_column
198
199def check_include_guards(conf,cfg,unguarded_include_files):
200 # Scan for '#ifndef FILE_H' as the first directive, in the first N lines.

Callers 1

check_include_guardsFunction · 0.85

Calls 3

reportNamingErrorFunction · 0.85
findMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected