def CheckSpacingForFunctionCall(filename, clean_lines, linenum, error):
line = clean_lines.elided[linenum]<EOL>fncall = line    <EOL>for pattern in (r'<STR_LIT>',<EOL>r'<STR_LIT>',<EOL>r'<STR_LIT>',<EOL>r'<STR_LIT>'):<EOL><INDENT>match = Search(pattern, line)<EOL>if match:<EOL><INDENT>fncall = match.group(<NUM_LIT:1>)    <EOL>break<EOL><DEDENT><DEDENT>if (  <EOL>not Search(r'<STR_LIT>',<EOL>fncall) and<EOL>not Search(r'<STR_LIT>', fncall) and<EOL>not Search(r'<STR_LIT>', fncall)):<EOL><INDENT>if Search(r'<STR_LIT>', fncall):      <EOL><INDENT>error(filename, linenum, '<STR_LIT>', <NUM_LIT:4>,<EOL>'<STR_LIT>')<EOL><DEDENT>elif Search(r'<STR_LIT>', fncall):<EOL><INDENT>error(filename, linenum, '<STR_LIT>', <NUM_LIT:2>,<EOL>'<STR_LIT>')<EOL><DEDENT>if (Search(r'<STR_LIT>', fncall) and<EOL>not Search(r'<STR_LIT>', fncall) and<EOL>not Search(r'<STR_LIT>', fncall) and<EOL>not Search(r'<STR_LIT>', fncall) and<EOL>not Search(r'<STR_LIT>', fncall)):<EOL><INDENT>if Search(r'<STR_LIT>', line):<EOL><INDENT>error(filename, linenum, '<STR_LIT>', <NUM_LIT:0>,<EOL>'<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>error(filename, linenum, '<STR_LIT>', <NUM_LIT:4>,<EOL>'<STR_LIT>')<EOL><DEDENT><DEDENT>if Search(r'<STR_LIT>', fncall):<EOL><INDENT>if Search(r'<STR_LIT>', fncall):<EOL><INDENT>error(filename, linenum, '<STR_LIT>', <NUM_LIT:2>,<EOL>'<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>error(filename, linenum, '<STR_LIT>', <NUM_LIT:2>,<EOL>'<STR_LIT>')<EOL><DEDENT><DEDENT><DEDENT>
Checks for the correctness of various spacing around function calls.

    Args:
      filename: The name of the current file.
      clean_lines: A CleansedLines instance containing the file.
      linenum: The number of the line to check.
      error: The function to call with any errors found.