mirror of https://github.com/python/cpython
Hear the #error: change the default value of the mutable_arg argument
to ioctl() and remove the warning when it is not supplied.
This commit is contained in:
parent
a3bc546d2a
commit
02d74f68c6
|
@ -78,11 +78,9 @@ The module defines the following functions:
|
|||
long which is then passed to \function{ioctl()} and copied back into
|
||||
the supplied buffer.
|
||||
|
||||
If \var{mutate_flag} is not supplied, then in 2.3 it defaults to
|
||||
false. This is planned to change over the next few Python versions:
|
||||
in 2.4 failing to supply \var{mutate_flag} will get a warning but
|
||||
the same behavior and in versions later than 2.5 it will default to
|
||||
true.
|
||||
If \var{mutate_flag} is not supplied, then from Python 2.5 it
|
||||
defaults to true, which is a change from versions 2.3 and 2.4.
|
||||
Supply the argument explicitly if version portability is a priority.
|
||||
|
||||
An example:
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ fcntl_ioctl(PyObject *self, PyObject *args)
|
|||
int ret;
|
||||
char *str;
|
||||
int len;
|
||||
int mutate_arg = 0;
|
||||
int mutate_arg = 1;
|
||||
char buf[1024];
|
||||
|
||||
if (PyArg_ParseTuple(args, "O&iw#|i:ioctl",
|
||||
|
@ -107,16 +107,6 @@ fcntl_ioctl(PyObject *self, PyObject *args)
|
|||
&str, &len, &mutate_arg)) {
|
||||
char *arg;
|
||||
|
||||
if (PyTuple_Size(args) == 3) {
|
||||
#if (PY_MAJOR_VERSION>2) || (PY_MINOR_VERSION>=5)
|
||||
#error Remove the warning, change mutate_arg to 1
|
||||
#endif
|
||||
if (PyErr_Warn(PyExc_FutureWarning,
|
||||
"ioctl with mutable buffer will mutate the buffer by default in 2.5"
|
||||
) < 0)
|
||||
return NULL;
|
||||
mutate_arg = 0;
|
||||
}
|
||||
if (mutate_arg) {
|
||||
if (len <= sizeof buf) {
|
||||
memcpy(buf, str, len);
|
||||
|
|
Loading…
Reference in New Issue