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
|
long which is then passed to \function{ioctl()} and copied back into
|
||||||
the supplied buffer.
|
the supplied buffer.
|
||||||
|
|
||||||
If \var{mutate_flag} is not supplied, then in 2.3 it defaults to
|
If \var{mutate_flag} is not supplied, then from Python 2.5 it
|
||||||
false. This is planned to change over the next few Python versions:
|
defaults to true, which is a change from versions 2.3 and 2.4.
|
||||||
in 2.4 failing to supply \var{mutate_flag} will get a warning but
|
Supply the argument explicitly if version portability is a priority.
|
||||||
the same behavior and in versions later than 2.5 it will default to
|
|
||||||
true.
|
|
||||||
|
|
||||||
An example:
|
An example:
|
||||||
|
|
||||||
|
|
|
@ -99,7 +99,7 @@ fcntl_ioctl(PyObject *self, PyObject *args)
|
||||||
int ret;
|
int ret;
|
||||||
char *str;
|
char *str;
|
||||||
int len;
|
int len;
|
||||||
int mutate_arg = 0;
|
int mutate_arg = 1;
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
|
|
||||||
if (PyArg_ParseTuple(args, "O&iw#|i:ioctl",
|
if (PyArg_ParseTuple(args, "O&iw#|i:ioctl",
|
||||||
|
@ -107,16 +107,6 @@ fcntl_ioctl(PyObject *self, PyObject *args)
|
||||||
&str, &len, &mutate_arg)) {
|
&str, &len, &mutate_arg)) {
|
||||||
char *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 (mutate_arg) {
|
||||||
if (len <= sizeof buf) {
|
if (len <= sizeof buf) {
|
||||||
memcpy(buf, str, len);
|
memcpy(buf, str, len);
|
||||||
|
|
Loading…
Reference in New Issue