From 91221c29f285bfd1a0595ee7a5335f6e23e49579 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 2 Dec 1997 20:30:29 +0000 Subject: Support for netbsd1 and freebsd3, after suggestions by Anders Andersen and Jacques Vidrine. --- Lib/posixfile.py | 4 ++-- Lib/test/test_fcntl.py | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Lib/posixfile.py b/Lib/posixfile.py index fc5f53f..d66517f 100644 --- a/Lib/posixfile.py +++ b/Lib/posixfile.py @@ -177,7 +177,7 @@ class _posixfile_: # Hack by davem@magnet.com to get locking to go on freebsd; # additions for AIX by Vladimir.Marangozov@imag.fr import sys, os - if sys.platform == 'freebsd2': + if sys.platform in ('netbsd1', 'freebsd2', 'freebsd3'): flock = struct.pack('lxxxxlxxxxlhh', \ l_start, l_len, os.getpid(), l_type, l_whence) elif sys.platform in ['aix3', 'aix4']: @@ -190,7 +190,7 @@ class _posixfile_: flock = fcntl.fcntl(self._file_.fileno(), cmd, flock) if '?' in how: - if sys.platform == 'freebsd2': + if sys.platform in ('netbsd1', 'freebsd2', 'freebsd3'): l_start, l_len, l_pid, l_type, l_whence = \ struct.unpack('lxxxxlxxxxlhh', flock) elif sys.platform in ['aix3', 'aix4']: diff --git a/Lib/test/test_fcntl.py b/Lib/test/test_fcntl.py index a5ea1e6..2ae6b99 100755 --- a/Lib/test/test_fcntl.py +++ b/Lib/test/test_fcntl.py @@ -5,7 +5,7 @@ import struct import fcntl import FCNTL -import os +import os, sys from test_support import verbose filename = '/tmp/delete-me' @@ -16,7 +16,12 @@ rv = fcntl.fcntl(f.fileno(), FCNTL.F_SETFL, os.O_NONBLOCK) if verbose: print 'Status from fnctl with O_NONBLOCK: ', rv -lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0) +if sys.platform in ('netbsd1', 'freebsd2', 'freebsd3'): + lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, FCNTL.F_WRLCK, 0) +elif sys.platform in ['aix3', 'aix4']: + lockdata = struct.pack('hhlllii', FCNTL.F_WRLCK, 0, 0, 0, 0, 0, 0) +else: + lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0) if verbose: print 'struct.pack: ', `lockdata` -- cgit v0.12