From 3ad2d70947a1b6c4b76c2029213e654c1b6ebc4e Mon Sep 17 00:00:00 2001
From: Serhiy Storchaka <storchaka@gmail.com>
Date: Fri, 13 Dec 2013 12:08:01 +0200
Subject: Issue #17919: select.poll.poll() again works with poll.POLLNVAL on
 AIX.

---
 Lib/test/test_poll.py  | 4 ----
 Misc/NEWS              | 2 ++
 Modules/selectmodule.c | 5 ++---
 3 files changed, 4 insertions(+), 7 deletions(-)

diff --git a/Lib/test/test_poll.py b/Lib/test/test_poll.py
index f98a280..e51e6f0 100644
--- a/Lib/test/test_poll.py
+++ b/Lib/test/test_poll.py
@@ -161,10 +161,6 @@ class PollTests(unittest.TestCase):
 
         pollster = select.poll()
         # Issue 15989
-        self.assertRaises(OverflowError, pollster.register, 0,
-                          _testcapi.SHRT_MAX + 1)
-        self.assertRaises(OverflowError, pollster.register, 0,
-                          _testcapi.USHRT_MAX + 1)
         self.assertRaises(OverflowError, pollster.poll, _testcapi.INT_MAX + 1)
         self.assertRaises(OverflowError, pollster.poll, _testcapi.UINT_MAX + 1)
 
diff --git a/Misc/NEWS b/Misc/NEWS
index 445a257..cd14311 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -29,6 +29,8 @@ Core and Builtins
 Library
 -------
 
+- Issue #17919: select.poll.poll() again works with poll.POLLNVAL on AIX.
+
 - Issue #19063: if a Charset's body_encoding was set to None, the email
   package would generate a message claiming the Content-Transfer-Encoding
   was 7bit, and produce garbage output for the content.  This now works.
diff --git a/Modules/selectmodule.c b/Modules/selectmodule.c
index 603a2b6..1bccc5f 100644
--- a/Modules/selectmodule.c
+++ b/Modules/selectmodule.c
@@ -380,11 +380,10 @@ static PyObject *
 poll_register(pollObject *self, PyObject *args)
 {
     PyObject *o, *key, *value;
-    int fd;
-    short events = POLLIN | POLLPRI | POLLOUT;
+    int fd, events = POLLIN | POLLPRI | POLLOUT;
     int err;
 
-    if (!PyArg_ParseTuple(args, "O|h:register", &o, &events)) {
+    if (!PyArg_ParseTuple(args, "O|i:register", &o, &events)) {
         return NULL;
     }
 
-- 
cgit v0.12

