view contrib/casesmash.py @ 24000:82e3324c4df9

trydiff: inline sole addmodehdr() call Now that there is only a single call to addmodehdr() left, and there is other similar code (for new/deleted files) around that call site, let's inline the function there. That also makes it clearer under what circumstances the header is actually written (when modes differ).
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 16 Jan 2015 14:53:37 -0800
parents 9de689d20230
children 42a7301fb4d5
line wrap: on
line source

import os, __builtin__
from mercurial import util

def lowerwrap(scope, funcname):
    f = getattr(scope, funcname)
    def wrap(fname, *args, **kwargs):
        d, base = os.path.split(fname)
        try:
            files = os.listdir(d or '.')
        except OSError:
            files = []
        if base in files:
            return f(fname, *args, **kwargs)
        for fn in files:
            if fn.lower() == base.lower():
                return f(os.path.join(d, fn), *args, **kwargs)
        return f(fname, *args, **kwargs)
    scope.__dict__[funcname] = wrap

def normcase(path):
    return path.lower()

os.path.normcase = normcase

for f in 'file open'.split():
    lowerwrap(__builtin__, f)

for f in "chmod chown open lstat stat remove unlink".split():
    lowerwrap(os, f)

for f in "exists lexists".split():
    lowerwrap(os.path, f)

lowerwrap(util, 'posixfile')