Patch #573770: Implement lchown.
This commit is contained in:
parent
ddc6f4748e
commit
0cec0ffc78
|
@ -641,6 +641,13 @@ and \var{gid}.
|
|||
Availability: \UNIX.
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{lchown}{path, uid, gid}
|
||||
Change the owner and group id of \var{path} to the numeric \var{uid}
|
||||
and gid. This function will not follow symbolic links.
|
||||
Availability: \UNIX.
|
||||
\versionadded{2.3}
|
||||
\end{funcdesc}
|
||||
|
||||
\begin{funcdesc}{link}{src, dst}
|
||||
Create a hard link pointing to \var{src} named \var{dst}.
|
||||
Availability: \UNIX.
|
||||
|
|
|
@ -162,8 +162,8 @@ Extension modules
|
|||
This will create a temporary in-memory bsddb that won't be
|
||||
written to disk.
|
||||
|
||||
- posix.killpg, posix.mknod, and posix.getpgid have been added where
|
||||
available.
|
||||
- posix.lchown, posix.killpg, posix.mknod, and posix.getpgid have been
|
||||
added where available.
|
||||
|
||||
- The locale module now exposes the C library's gettext interface.
|
||||
|
||||
|
@ -339,7 +339,7 @@ Build
|
|||
to require editing the core to teach the trashcan mechanism about the
|
||||
new type.
|
||||
|
||||
- Accoring to Annex F of the current C standard,
|
||||
- According to Annex F of the current C standard,
|
||||
|
||||
The Standard C macro HUGE_VAL and its float and long double analogs,
|
||||
HUGE_VALF and HUGE_VALL, expand to expressions whose values are
|
||||
|
|
|
@ -930,6 +930,33 @@ posix_chown(PyObject *self, PyObject *args)
|
|||
}
|
||||
#endif /* HAVE_CHOWN */
|
||||
|
||||
#ifdef HAVE_LCHOWN
|
||||
PyDoc_STRVAR(posix_lchown__doc__,
|
||||
"lchown(path, uid, gid)\n\n\
|
||||
Change the owner and group id of path to the numeric uid and gid.\n\
|
||||
This function will not follow symbolic links.");
|
||||
|
||||
static PyObject *
|
||||
posix_lchown(PyObject *self, PyObject *args)
|
||||
{
|
||||
char *path = NULL;
|
||||
int uid, gid;
|
||||
int res;
|
||||
if (!PyArg_ParseTuple(args, "etii:lchown",
|
||||
Py_FileSystemDefaultEncoding, &path,
|
||||
&uid, &gid))
|
||||
return NULL;
|
||||
Py_BEGIN_ALLOW_THREADS
|
||||
res = lchown(path, (uid_t) uid, (gid_t) gid);
|
||||
Py_END_ALLOW_THREADS
|
||||
if (res < 0)
|
||||
return posix_error_with_allocated_filename(path);
|
||||
PyMem_Free(path);
|
||||
Py_INCREF(Py_None);
|
||||
return Py_None;
|
||||
}
|
||||
#endif /* HAVE_LCHOWN */
|
||||
|
||||
|
||||
#ifdef HAVE_GETCWD
|
||||
PyDoc_STRVAR(posix_getcwd__doc__,
|
||||
|
@ -6225,6 +6252,9 @@ static PyMethodDef posix_methods[] = {
|
|||
#ifdef HAVE_CHOWN
|
||||
{"chown", posix_chown, METH_VARARGS, posix_chown__doc__},
|
||||
#endif /* HAVE_CHOWN */
|
||||
#ifdef HAVE_LCHOWN
|
||||
{"lchown", posix_lchown, METH_VARARGS, posix_lchown__doc__},
|
||||
#endif /* HAVE_LCHOWN */
|
||||
#ifdef HAVE_CHROOT
|
||||
{"chroot", posix_chroot, METH_VARARGS, posix_chroot__doc__},
|
||||
#endif
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#! /bin/sh
|
||||
# From configure.in Revision: 1.334 .
|
||||
# From configure.in Revision: 1.335 .
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.53.
|
||||
#
|
||||
|
@ -11436,13 +11436,14 @@ echo "${ECHO_T}MACHDEP_OBJS" >&6
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
for ac_func in alarm chown chroot clock confstr ctermid ctermid_r execv \
|
||||
fchdir flock fork fsync fdatasync fpathconf ftime ftruncate \
|
||||
gai_strerror getgroups getlogin getpeername getpgid getpid getpwent getwd \
|
||||
hstrerror inet_pton kill killpg link lstat mkfifo mknod mktime mremap \
|
||||
nice pathconf pause plock poll pthread_init \
|
||||
hstrerror inet_pton kill killpg lchown link lstat mkfifo mknod mktime \
|
||||
mremap nice pathconf pause plock poll pthread_init \
|
||||
putenv readlink \
|
||||
select setegid seteuid setgid setgroups \
|
||||
setlocale setregid setreuid setsid setpgid setuid setvbuf snprintf \
|
||||
|
|
|
@ -1619,8 +1619,8 @@ AC_MSG_RESULT(MACHDEP_OBJS)
|
|||
AC_CHECK_FUNCS(alarm chown chroot clock confstr ctermid ctermid_r execv \
|
||||
fchdir flock fork fsync fdatasync fpathconf ftime ftruncate \
|
||||
gai_strerror getgroups getlogin getpeername getpgid getpid getpwent getwd \
|
||||
hstrerror inet_pton kill killpg link lstat mkfifo mknod mktime mremap \
|
||||
nice pathconf pause plock poll pthread_init \
|
||||
hstrerror inet_pton kill killpg lchown link lstat mkfifo mknod mktime \
|
||||
mremap nice pathconf pause plock poll pthread_init \
|
||||
putenv readlink \
|
||||
select setegid seteuid setgid setgroups \
|
||||
setlocale setregid setreuid setsid setpgid setuid setvbuf snprintf \
|
||||
|
|
|
@ -211,6 +211,9 @@
|
|||
Solaris and Linux, the necessary defines are already defined.) */
|
||||
#undef HAVE_LARGEFILE_SUPPORT
|
||||
|
||||
/* Define to 1 if you have the `lchown' function. */
|
||||
#undef HAVE_LCHOWN
|
||||
|
||||
/* Define to 1 if you have the `dl' library (-ldl). */
|
||||
#undef HAVE_LIBDL
|
||||
|
||||
|
|
Loading…
Reference in New Issue