Author: Ronan Lamy <ronan.l...@gmail.com> Branch: follow_symlinks Changeset: r83383:3da1fa9db8d2 Date: 2016-03-26 03:29 +0000 http://bitbucket.org/pypy/pypy/changeset/3da1fa9db8d2/
Log: Support *_dir_fd arguments in posix.link() diff --git a/pypy/module/posix/interp_posix.py b/pypy/module/posix/interp_posix.py --- a/pypy/module/posix/interp_posix.py +++ b/pypy/module/posix/interp_posix.py @@ -964,7 +964,7 @@ @unwrap_spec( src='fsencode', dst='fsencode', - src_dir_fd=DirFD(available=False), dst_dir_fd=DirFD(available=False), + src_dir_fd=DirFD(rposix.HAVE_LINKAT), dst_dir_fd=DirFD(rposix.HAVE_LINKAT), follow_symlinks=kwonly(bool)) def link( space, src, dst, @@ -985,8 +985,12 @@ platform. If they are unavailable, using them will raise a NotImplementedError.""" try: - os.link(src, dst) - except OSError, e: + if (src_dir_fd != DEFAULT_DIR_FD or dst_dir_fd != DEFAULT_DIR_FD + or not follow_symlinks): + rposix.linkat(src, dst, src_dir_fd, dst_dir_fd, follow_symlinks) + else: + rposix.link(src, dst) + except OSError as e: raise wrap_oserror(space, e) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit