def METHOD_NAME(filename):
    # Don't update soft links
    if os.path.islink(filename):
        return
    f = open(filename)
    text = f.read()
    f.close()
    header = unified_header
    # Check (exact match only)
    if (text.find(header) == -1 or global_options.force == True):
        # print the first 10 lines or so of the file
        if global_options.update == False: # Report only
            print(filename + ' does not contain an up to date header')
            if global_options.verbose == True:
                print('>'*40, '\n', '\n'.join((text.split('\n', 10))[:10]), '\n'*5)
        else:
            # Make sure any previous C-style header version is removed
            text = re.sub(r'^/\*+/$.*^/\*+/$', '', text, flags=re.S | re.M)
            # Make sure that any previous C++-style header (with extra character)
            # is also removed.
            text = re.sub(r'(?:^//\*.*\n)*', '', text, flags=re.M)
            # Now cleanup extra blank lines
            text = re.sub(r'\A(^\s*\n)', '', text)
            suffix = os.path.splitext(filename)
            if suffix[-1] == '.h':
                text = re.sub(r'^#ifndef\s*\S+_H_?\s*\n#define.*\n', '', text, flags=re.M)
                text = re.sub(r'^#endif.*\n[\s]*\Z', '', text, flags=re.M)
            # Update
            f = open(filename + '~tmp', 'w')
            f.write(header + '\n\n')
            if suffix[-1] == '.h':
                if not re.search(r'#pragma once', text):
                    f.write("#pragma once\n")
            f.write(text)
            f.close()
            os.rename(filename + '~tmp', filename)