|
|
@ -465,6 +465,10 @@ def encodeFilename(s, for_subprocess=False): |
|
|
|
if not for_subprocess and sys.platform == 'win32' and sys.getwindowsversion()[0] >= 5: |
|
|
|
return s |
|
|
|
|
|
|
|
# Jython assumes filenames are Unicode strings though reported as Python 2.x compatible |
|
|
|
if sys.platform.startswith('java'): |
|
|
|
return s |
|
|
|
|
|
|
|
return s.encode(get_subprocess_encoding(), 'ignore') |
|
|
|
|
|
|
|
|
|
|
@ -1215,13 +1219,23 @@ if sys.platform == 'win32': |
|
|
|
raise OSError('Unlocking file failed: %r' % ctypes.FormatError()) |
|
|
|
|
|
|
|
else: |
|
|
|
import fcntl |
|
|
|
# Some platforms, such as Jython, is missing fcntl |
|
|
|
try: |
|
|
|
import fcntl |
|
|
|
|
|
|
|
def _lock_file(f, exclusive): |
|
|
|
fcntl.flock(f, fcntl.LOCK_EX if exclusive else fcntl.LOCK_SH) |
|
|
|
def _lock_file(f, exclusive): |
|
|
|
fcntl.flock(f, fcntl.LOCK_EX if exclusive else fcntl.LOCK_SH) |
|
|
|
|
|
|
|
def _unlock_file(f): |
|
|
|
fcntl.flock(f, fcntl.LOCK_UN) |
|
|
|
def _unlock_file(f): |
|
|
|
fcntl.flock(f, fcntl.LOCK_UN) |
|
|
|
except ImportError: |
|
|
|
UNSUPPORTED_MSG = 'file locking is not supported on this platform' |
|
|
|
|
|
|
|
def _lock_file(f, exclusive): |
|
|
|
raise IOError(UNSUPPORTED_MSG) |
|
|
|
|
|
|
|
def _unlock_file(f): |
|
|
|
raise IOError(UNSUPPORTED_MSG) |
|
|
|
|
|
|
|
|
|
|
|
class locked_file(object): |
|
|
@ -1385,6 +1399,12 @@ def fix_xml_ampersands(xml_str): |
|
|
|
|
|
|
|
def setproctitle(title): |
|
|
|
assert isinstance(title, compat_str) |
|
|
|
|
|
|
|
# ctypes in Jython is not complete |
|
|
|
# http://bugs.jython.org/issue2148 |
|
|
|
if sys.platform.startswith('java'): |
|
|
|
return |
|
|
|
|
|
|
|
try: |
|
|
|
libc = ctypes.cdll.LoadLibrary('libc.so.6') |
|
|
|
except OSError: |
|
|
|