to ioctl() and remove the warning when it is not supplied.
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:
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",
&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);