From 02d74f68c63ef93cd30873f7ff8c083dd3ec60c0 Mon Sep 17 00:00:00 2001 From: "Michael W. Hudson" Date: Tue, 30 Nov 2004 14:31:54 +0000 Subject: Hear the #error: change the default value of the mutable_arg argument to ioctl() and remove the warning when it is not supplied. --- Doc/lib/libfcntl.tex | 8 +++----- Modules/fcntlmodule.c | 12 +----------- 2 files changed, 4 insertions(+), 16 deletions(-) diff --git a/Doc/lib/libfcntl.tex b/Doc/lib/libfcntl.tex index df258ee..4391d73 100644 --- a/Doc/lib/libfcntl.tex +++ b/Doc/lib/libfcntl.tex @@ -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: diff --git a/Modules/fcntlmodule.c b/Modules/fcntlmodule.c index 43f1773..54f3a2e 100644 --- a/Modules/fcntlmodule.c +++ b/Modules/fcntlmodule.c @@ -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); -- cgit v0.12