(The fix looks different, but does the same thing to the 2.1 GC code
that Neil's patch does to the 2.2 GC code.)
This is Neil's fix for SF bug 535905 (Evil Trashcan and GC interaction).
The fix makes it possible to call PyObject_GC_UnTrack() more than once
on the same object, and then move the PyObject_GC_UnTrack() call to
*before* the trashcan code is invoked.
BUGFIX CANDIDATE!
Kleineidam): curses error in w.border().
For some reason, in 2.1.2 and before, PyCursesWindow_Border is
declared as METH_VARARGS but calls PyArg_Parse(), which is wrong.
(This is not relevant for 2.2, which does this completely different
and makes all functions METH_VARARGS.)
initregex(): this function is declared void, so the recent change to
return NULL in an error case was itself an error.
initregex(): Check return value of PyErr_Warn() and propagate the exception
(if any.)
Fix SF bug #474538: Memory (reference) leak in poller.register (Dave Brueck)
Replace some tortuous code that was trying to be clever but forgot to
DECREF the key and value, by more longwinded but obviously correct
code.
Stop adding 3 to FD_SETSIZE -- it makes no sense. If it turns out it
actually does <wink>, perhaps an Insure run will catch it.
Also removed senseless Windows comment.
select_select(): Closing bug #448351 the easy way, i.e. by changing
the "#ifdef MS_WINDOWS" to "#ifdef SELECT_USES_HEAP" and by
setting SELECT_USES_HEAP when FD_SETSIZE > 1024.
The indirection seems useful since this subtly changes the path
that "normal" Windows programs take (where Timmie sez FD_SETSIZE =
512). If that's a problem for Windows, he has only one place to
change.
Add sendall() method, which loops until all data is written or an
error occurs, and doesn't return a count. (This is my second patch
from SF patch #474307, with small change to the docstring for send().)
the 'partial' is because 1.188 also added a couple of Py_*_ALLOW_THREADS
wrappers around SSL_read and SSL_write, and I want to check those separately.
This is adding a new method to the socket object, which would normally
be a bad thing to do in a bugfix release - however, in this case, it
allows fixes for a nasty problem that would otherwise have a filthy
filthy fix to Get It Right. Still to-do is to patch the std library
modules to use sendall() where appropriate, rather than send().
Test for __sun instead of __sun__, since SUNWspro only defines the latter;
gcc defines both.
...must get sparc box at home out of cupboard for testing this stuff...
Use PySocket_Err() instead of PyErr_SetFromErrno().
The former does the right thing on Windows, the latter does not.
The 'partial' is because the code's changed quite a lot and it's not clear
that the two that are still there of the form
return PyErr_SetFromErrno(SSLErrorObject);
can be replaced with PySocket_Err() - it looks like they need the new
PySSL_SetError, which is a tad large to be comfortable with just checking
in without reading it further.
Make clear in the docstring that "std" applies to both size and alignment,
not just to alignment. Spotted by Guido.
not normally bothering with docstring cleanups, but in this case Tim _did_
note it as a bugfix candidate, so I'll be nice :)
SF patch #459385 (Norman Vine): time.timezone fix for Cygwin.
(skipped whitespace normalisation section of patch - this is a bugfix,
not a beauty contest :)