diff --git a/mercurial/posix.py b/mercurial/posix.py --- a/mercurial/posix.py +++ b/mercurial/posix.py @@ -557,3 +557,11 @@ class unixdomainserver(socket.socket): if self.realpath != self.path: okayifmissing(os.unlink, self.realpath) okayifmissing(os.rmdir, os.path.dirname(self.realpath)) + +def statislink(st): + '''check whether a stat result is a symlink''' + return st and stat.S_ISLNK(st.st_mode) + +def statisexec(st): + '''check whether a stat result is an executable file''' + return st and (st.st_mode & 0100 != 0) diff --git a/mercurial/util.py b/mercurial/util.py --- a/mercurial/util.py +++ b/mercurial/util.py @@ -65,6 +65,8 @@ spawndetached = platform.spawndetached split = platform.split sshargs = platform.sshargs statfiles = getattr(osutil, 'statfiles', platform.statfiles) +statisexec = platform.statisexec +statislink = platform.statislink termwidth = platform.termwidth testpid = platform.testpid umask = platform.umask diff --git a/mercurial/windows.py b/mercurial/windows.py --- a/mercurial/windows.py +++ b/mercurial/windows.py @@ -337,3 +337,11 @@ def lookupreg(key, valname=None, scope=N pass expandglobs = True + +def statislink(st): + '''check whether a stat result is a symlink''' + return False + +def statisexec(st): + '''check whether a stat result is an executable file''' + return False