diff options
Diffstat (limited to 'lang/python32/files/patch-Modules-fcntlmodule.c')
-rw-r--r-- | lang/python32/files/patch-Modules-fcntlmodule.c | 88 |
1 files changed, 44 insertions, 44 deletions
diff --git a/lang/python32/files/patch-Modules-fcntlmodule.c b/lang/python32/files/patch-Modules-fcntlmodule.c index 3803ad427fbe..6f9f3ab01d0a 100644 --- a/lang/python32/files/patch-Modules-fcntlmodule.c +++ b/lang/python32/files/patch-Modules-fcntlmodule.c @@ -1,53 +1,53 @@ ---- Modules/fcntlmodule.c.orig 2009-05-24 11:46:13.000000000 -0400 -+++ Modules/fcntlmodule.c 2010-06-24 22:30:32.000000000 -0400 +--- Modules/fcntlmodule.c.orig 2010-12-14 09:44:03.000000000 +0800 ++++ Modules/fcntlmodule.c 2010-12-14 09:47:17.000000000 +0800 @@ -97,20 +97,15 @@ { #define IOCTL_BUFSZ 1024 - int fd; -- /* In PyArg_ParseTuple below, we use the unsigned non-checked 'I' -+ /* In PyArg_ParseTuple below, we use the unsigned non-checked 'k' - format for the 'code' parameter because Python turns 0x8000000 - into either a large positive number (PyLong or PyInt on 64-bit - platforms) or a negative number on others (32-bit PyInt) - whereas the system expects it to be a 32bit bit field value - regardless of it being passed as an int or unsigned long on -- various platforms. See the termios.TIOCSWINSZ constant across -- platforms for an example of thise. + int fd; +- /* In PyArg_ParseTuple below, we use the unsigned non-checked 'I' ++ /* In PyArg_ParseTuple below, we use the unsigned non-checked 'k' + format for the 'code' parameter because Python turns 0x8000000 + into either a large positive number (PyLong or PyInt on 64-bit + platforms) or a negative number on others (32-bit PyInt) + whereas the system expects it to be a 32bit bit field value + regardless of it being passed as an int or unsigned long on +- various platforms. See the termios.TIOCSWINSZ constant across +- platforms for an example of thise. - -- If any of the 64bit platforms ever decide to use more than 32bits -- in their unsigned long ioctl codes this will break and need -- special casing based on the platform being built on. -+ various platforms. - */ -- unsigned int code; -+ unsigned long code; - int arg; - int ret; - Py_buffer pstr; +- If any of the 64bit platforms ever decide to use more than 32bits +- in their unsigned long ioctl codes this will break and need +- special casing based on the platform being built on. ++ various platforms. + */ +- unsigned int code; ++ unsigned long code; + int arg; + int ret; + Py_buffer pstr; @@ -119,7 +114,7 @@ - int mutate_arg = 1; - char buf[IOCTL_BUFSZ+1]; /* argument plus NUL byte */ + int mutate_arg = 1; + char buf[IOCTL_BUFSZ+1]; /* argument plus NUL byte */ -- if (PyArg_ParseTuple(args, "O&Iw*|i:ioctl", -+ if (PyArg_ParseTuple(args, "O&kw*|i:ioctl", - conv_descriptor, &fd, &code, - &pstr, &mutate_arg)) { - char *arg; +- if (PyArg_ParseTuple(args, "O&Iw*|i:ioctl", ++ if (PyArg_ParseTuple(args, "O&kw*|i:ioctl", + conv_descriptor, &fd, &code, + &pstr, &mutate_arg)) { + char *arg; @@ -174,7 +169,7 @@ - } + } - PyErr_Clear(); -- if (PyArg_ParseTuple(args, "O&Is*:ioctl", -+ if (PyArg_ParseTuple(args, "O&ks*:ioctl", - conv_descriptor, &fd, &code, &pstr)) { - str = pstr.buf; - len = pstr.len; + PyErr_Clear(); +- if (PyArg_ParseTuple(args, "O&Is*:ioctl", ++ if (PyArg_ParseTuple(args, "O&ks*:ioctl", + conv_descriptor, &fd, &code, &pstr)) { + str = pstr.buf; + len = pstr.len; @@ -201,7 +196,7 @@ - PyErr_Clear(); - arg = 0; - if (!PyArg_ParseTuple(args, -- "O&I|i;ioctl requires a file or file descriptor," -+ "O&k|i;ioctl requires a file or file descriptor," - " an integer and optionally an integer or buffer argument", - conv_descriptor, &fd, &code, &arg)) { - return NULL; + PyErr_Clear(); + arg = 0; + if (!PyArg_ParseTuple(args, +- "O&I|i;ioctl requires a file or file descriptor," ++ "O&k|i;ioctl requires a file or file descriptor," + " an integer and optionally an integer or buffer argument", + conv_descriptor, &fd, &code, &arg)) { + return NULL; |