def ProcessConfigOverrides(filename):
abs_filename = os.path.abspath(filename)<EOL>cfg_filters = []<EOL>keep_looking = True<EOL>while keep_looking:<EOL><INDENT>abs_path, base_name = os.path.split(abs_filename)<EOL>if not base_name:<EOL><INDENT>break  <EOL><DEDENT>cfg_file = os.path.join(abs_path, "<STR_LIT>")<EOL>abs_filename = abs_path<EOL>if not os.path.isfile(cfg_file):<EOL><INDENT>continue<EOL><DEDENT>try:<EOL><INDENT>with open(cfg_file) as file_handle:<EOL><INDENT>for line in file_handle:<EOL><INDENT>line, _, _ = line.partition('<STR_LIT:#>')  <EOL>if not line.strip():<EOL><INDENT>continue<EOL><DEDENT>name, _, val = line.partition('<STR_LIT:=>')<EOL>name = name.strip()<EOL>val = val.strip()<EOL>if name == '<STR_LIT>':<EOL><INDENT>keep_looking = False<EOL><DEDENT>elif name == '<STR_LIT>':<EOL><INDENT>cfg_filters.append(val)<EOL><DEDENT>elif name == '<STR_LIT>':<EOL><INDENT>if base_name:<EOL><INDENT>pattern = re.compile(val)<EOL>if pattern.match(base_name):<EOL><INDENT>_cpplint_state.PrintInfo('<STR_LIT>'<EOL>'<STR_LIT>' %<EOL>(filename, cfg_file, base_name, val))<EOL>return False<EOL><DEDENT><DEDENT><DEDENT>elif name == '<STR_LIT>':<EOL><INDENT>global _line_length<EOL>try:<EOL><INDENT>_line_length = int(val)<EOL><DEDENT>except ValueError:<EOL><INDENT>_cpplint_state.PrintError('<STR_LIT>')<EOL><DEDENT><DEDENT>elif name == '<STR_LIT>':<EOL><INDENT>global _valid_extensions<EOL>try:<EOL><INDENT>extensions = [ext.strip() for ext in val.split('<STR_LIT:U+002C>')]<EOL>_valid_extensions = set(extensions)<EOL><DEDENT>except ValueError:<EOL><INDENT>sys.stderr.write('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>' % (val,))<EOL><DEDENT><DEDENT>elif name == '<STR_LIT>':<EOL><INDENT>global _header_extensions<EOL>try:<EOL><INDENT>extensions = [ext.strip() for ext in val.split('<STR_LIT:U+002C>')]<EOL>_header_extensions = set(extensions)<EOL><DEDENT>except ValueError:<EOL><INDENT>sys.stderr.write('<STR_LIT>'<EOL>'<STR_LIT>'<EOL>'<STR_LIT>' % (val,))<EOL><DEDENT><DEDENT>elif name == '<STR_LIT:root>':<EOL><INDENT>global _root<EOL>_root = val<EOL><DEDENT>else:<EOL><INDENT>_cpplint_state.PrintError(<EOL>'<STR_LIT>' %<EOL>(name, cfg_file))<EOL><DEDENT><DEDENT><DEDENT><DEDENT>except IOError:<EOL><INDENT>_cpplint_state.PrintError(<EOL>"<STR_LIT>" % cfg_file)<EOL>keep_looking = False<EOL><DEDENT><DEDENT>for cfg_filter in reversed(cfg_filters):<EOL><INDENT>_AddFilters(cfg_filter)<EOL><DEDENT>return True<EOL>
Loads the configuration files and processes the config overrides.

    Args:
      filename: The name of the file being processed by the linter.

    Returns:
      False if the current |filename| should not be processed further.