Use // where int division is intended. (This breaks IDLE for use with
previous Python versions -- I don't care.)
Rev 1.40 tim_one
Convert a pile of obvious "yes/no" functions to return bool.
Rev 1.41 foffani/loewis
(already merged) - MS html help
Rev 1.42
(skip, done differently in Idlefork)
Rev 1.43 tzot/rhettinger
Extended IDLE's open module menu item to handle hierarchical module names.
Will look at doing something similar in import.c so that the effort won't
have to be repeated elsewhere.
Closes SF patch 600152.
Kurt B. Kaiser [Mon, 16 Sep 2002 01:06:52 +0000 (01:06 +0000)]
Merge Py Idle changes
Rev 1.16
(skip. The Edward K. Ream breakpoint fix has been added to bdb.py
and idlefork Debugger.py no longer overrides Bdb.set_break() )
Kurt B. Kaiser [Sun, 15 Sep 2002 22:02:58 +0000 (22:02 +0000)]
Merge Py Idle changes
Rev 1.9
Improve handling of docstrings. I had feared this was a case of
introspection incompatibility, but in fact it's just that calltips
always gave up on a docstring that started with a newline (but
didn't realize they were giving up <wink>).
Rev 1.10
(already merged)
Rev 1.11
(whitespace normalization, skip this time)
Kurt B. Kaiser [Sun, 15 Sep 2002 21:43:13 +0000 (21:43 +0000)]
Merge Py Idle changes
Rev 1.4
SF bug 546078: IDLE calltips cause application error.
Assorted crashes on Windows and Linux when trying to display a very
long calltip, most likely a Tk bug. Wormed around by clamping the
calltip display to a maximum of 79 characters (why 79? why not ...).
Kurt B. Kaiser [Sun, 15 Sep 2002 21:31:30 +0000 (21:31 +0000)]
Merge Py Idle's changes to AutoIndent.py into EditorWindow.py since
EditorWindow has incorporated AutoIndent
Rev 1.17
classifyws(): Fix a "/" to work under -Qnew (as well as without it).
Bugfix candidate!
Rev 1.18
(Already merged)
Rev 1.19
smart_backspace_event(): remove now-pointless int() call.
Bugfix candidate: the current state of AutoIdent.py should be in 2.2.1.
Rev 1.20
Apply diff2.txt from SF patch http://www.python.org/sf/572113
(with one small bugfix in bgen/bgen/scantools.py)
This replaces string module functions with string methods
for the stuff in the Tools directory. Several uses of
string.letters etc. are still remaining.
Address SF bug #577530: del __builtins__ breaks out of rexec
Using the suggestion there: add_module() forces __builtin__ back; this
fixes r_exec, r_eval, r_execfile. The interactive console had to be
fixed separately, because it doesn't use r_exec, but relies on the
'locals' dict having the right __builtins__. Fixed this by
subclassing InteractiveConsole and overriding runcode(), which does
the exec. This changes the banner output slightly: instead of
starting with *** RESTRICTED ***, a subtler (RestrictedConsole) is
printed before the first >>> prompt.
Also import readline (if it exists) when the interactive console is
used, for more convenient input editing and history.
This does not mean that rexec is now considered safe! But for those
willing to take the risk, it's safer than before. (Note that a safety
analysis of the code module would be wise if you plan to use the
interactive console for real -- I've only ever used it to play with
restricted mode.)
Kurt B. Kaiser [Sat, 14 Sep 2002 02:53:05 +0000 (02:53 +0000)]
MERGE DS_RPC_BRANCH into MAIN
ReplaceDialog
(missed a change Py Idle 04Apr2002, Booleans, pick up later)
track Py Idle: GvR drops 1.5.2 re support 24 Jul
Kurt B. Kaiser [Sat, 14 Sep 2002 02:40:17 +0000 (02:40 +0000)]
MERGE DS_RPC_BRANCH into MAIN
EditorWindow.py
don't track Py Idle patch 543222 - disable script bindings in shell
since it was done differently in MAIN
Remove "binding comments" 05 Aug 1.23.2.3 to 1.23.2.4
Remove last dependencies to old config backend 06Aug to 1.23.2.5
Fred Drake [Thu, 12 Sep 2002 18:01:26 +0000 (18:01 +0000)]
Minor revision to the "\\" patch, including updating the docs a little to
accomodate the fact that they are more general now that they are for the
os.path module and not just posixpath.
This and the previous patch should be combined and applied to the 2.2-maint
branch.
Fred Drake [Thu, 12 Sep 2002 17:02:01 +0000 (17:02 +0000)]
Relax a test so it passes either with the standard library or PyXML.
The original expected value is actually wrong, but we'll pick up the
real fix and test when we refresh the xml package from PyXML before
2.3a1.
Only build the 'dl' extension when sys.maxint equals 2**31-1.
This module raises "SystemError: module dl requires sizeof(int) ==
sizeof(long) == sizeof(char*)" when compiled on 64-bit platforms.
Undocumented feature: MHMailbox sets the msg object's _mh_msgno
attribute to the (stringized) message number (if this attribute is
settable). This is useful so users of this class can report the
correct message number (e.g. when classifying spam).
Also added a blank line before the first method of each class.
I don't think it's safe to use map.iteritems() in the various poll
routines. I got some errors "dictionary changed size during
iteration" when running ZEO tests on machine while doing heavy
forground work in another window, and thinking about it, I believe
that it should be okay if readable() or writable() modifies the map.
I also finally made all the spacing conform to the Python style guide:
no space between a function/method name and the following left
parenthesis (fixed lots of occurrences), spaces around assignment
operators (fixed a few, always of the form "map=..."), and a blank
line between the class statement and the first method definition (a
few).
Walter Dörwald [Wed, 11 Sep 2002 20:36:02 +0000 (20:36 +0000)]
Apply diff2.txt from SF patch http://www.python.org/sf/572113
(with one small bugfix in bgen/bgen/scantools.py)
This replaces string module functions with string methods
for the stuff in the Tools directory. Several uses of
string.letters etc. are still remaining.
Insert an overflow check when the sequence repetition count is outside
the range of ints. The old code would pass random truncated bits to
sq_repeat() on a 64-bit machine.
The list(xrange(sys.maxint / 4)) test blew up on 64-bit platforms.
Because ob_size is a 32-bit int but sys.maxint is LONG_MAX which is a
64-bit value, there's no way to make this test succeed on a 64-bit
platform. So just skip it when sys.maxint isn't 0x7fffffff.
Untested code for 64-bit platforms. range_length() is declared as int
but returns r->len which is a long. This doesn't even cause a warning
on 32-bit platforms, but can return bogus values on 64-bit platforms
(and should cause a compiler warning). Fix this by inserting a range
check when LONG_MAX != INT_MAX, and adding an explicit cast to (int)
when the test passes. When r->len is out of range, PySequence_Size()
and hence len() will report an error (but an iterator will still
work).
Barry Warsaw [Wed, 11 Sep 2002 02:56:42 +0000 (02:56 +0000)]
test_both(): I believe this was a typo: m is only defined if no
exception occurred so it should only be closed in the else clause.
Without this change we can an UnboundLocalError on Linux:
Traceback (most recent call last):
File "Lib/test/test_mmap.py", line 304, in ?
test_both()
File "Lib/test/test_mmap.py", line 208, in test_both
m.close()
UnboundLocalError: local variable 'm' referenced before assignment
Barry Warsaw [Wed, 11 Sep 2002 02:22:48 +0000 (02:22 +0000)]
rfc822.unquote() doesn't properly de-backslash-ify in Python prior to
2.3. This patch (adapted from Quinn Dunkan's SF patch #573204) fixes
the problem and should get ported to rfc822.py.
Tim Peters [Tue, 10 Sep 2002 21:19:55 +0000 (21:19 +0000)]
I left some debugging junk in here; removed it. Also replaced a few
more instances of the bizarre "del f; del m" ways to spell .close() (del
won't do any good here under Jython, etc).
Tim Peters [Tue, 10 Sep 2002 20:49:15 +0000 (20:49 +0000)]
A few days ago a test was added here to ensure that creating an mmap
with a size larger than the underlying file worked on Windows. It
does <wink>. However, merely creating an mmap that way has the side
effect of growing the file on disk to match the specified size. A
*later* test assumed that the file on disk was still exactly as it was
before the new "size too big" test was added, but that's no longer true.
So added a hack at the end of the "size too big" test to truncate the
disk file back to its original size on Windows.
Barry Warsaw [Tue, 10 Sep 2002 16:14:56 +0000 (16:14 +0000)]
_parsebody(): Instead of raising a BoundaryError when no start
boundary could be found -- in a lax parser -- the entire body is
assigned to the message payload.
Barry Warsaw [Tue, 10 Sep 2002 16:13:45 +0000 (16:13 +0000)]
Import _isstring() from the compatibility layer.
_handle_text(): Use _isstring() for stringiness test.
_handle_multipart(): Add a test before the ListType test, checking for
stringiness of the payload. String payloads for multitypes means a
message with broken MIME chrome was parsed by a lax parser. Instead
of raising a BoundaryError in those cases, the entire body is assigned
to the message payload (but since the content type is still
multipart/*, the Generator needs to be updated too).