Home | History | Annotate | Download | only in idlelib
      1 Please refer to the IDLEfork and IDLE CVS repositories for
      2 change details subsequent to the 0.8.1 release.
      3 
      4 
      5 IDLEfork ChangeLog
      6 ==================
      7 
      8 2001-07-20 11:35  elguavas
      9 
     10 	* README.txt, NEWS.txt: bring up to date for 0.8.1 release
     11 
     12 2001-07-19 16:40  elguavas
     13 
     14 	* IDLEFORK.html: replaced by IDLEFORK-index.html
     15 
     16 2001-07-19 16:39  elguavas
     17 
     18 	* IDLEFORK-index.html: updated placeholder idlefork homepage
     19 
     20 2001-07-19 14:49  elguavas
     21 
     22 	* ChangeLog, EditorWindow.py, INSTALLATION, NEWS.txt, README.txt,
     23 	TODO.txt, idlever.py: 
     24 	minor tidy-ups ready for 0.8.1 alpha tarball release
     25 
     26 2001-07-17 15:12  kbk
     27 
     28 	* INSTALLATION, setup.py: INSTALLATION: Remove the coexist.patch
     29 	instructions
     30 	
     31 	**************** setup.py:
     32 	
     33 	Remove the idles script, add some words on IDLE Fork to the
     34 	long_description, and clean up some line spacing.
     35 
     36 2001-07-17 15:01  kbk
     37 
     38 	* coexist.patch: Put this in the attic, at least for now...
     39 
     40 2001-07-17 14:59  kbk
     41 
     42 	* PyShell.py, idle, idles: Implement idle command interface as
     43 	suggested by GvR [idle-dev] 16 July **************** PyShell: Added
     44 	functionality:
     45 	
     46 	usage: idle.py [-c command] [-d] [-i] [-r script] [-s] [-t title]
     47 	[arg] ...
     48 	
     49 	idle file(s)	(without options) edit the file(s)
     50 	
     51 	-c cmd	   run the command in a shell -d	 enable the
     52 	debugger -i	    open an interactive shell -i file(s) open a
     53 	shell and also an editor window for each file -r script  run a file
     54 	as a script in a shell -s	  run $IDLESTARTUP or
     55 	$PYTHONSTARTUP before anything else -t title   set title of shell
     56 	window
     57 	
     58 	Remaining arguments are applied to the command (-c) or script (-r).
     59 	
     60 	****************** idles: Removed the idles script, not needed
     61 	
     62 	****************** idle:  Removed the IdleConf references, not
     63 	required anymore
     64 
     65 2001-07-16 17:08  kbk
     66 
     67 	* INSTALLATION, coexist.patch: Added installation instructions.
     68 	
     69 	Added a patch which modifies idlefork so that it can co-exist with
     70 	"official" IDLE in the site-packages directory. This patch is not
     71 	necessary if only idlefork IDLE is installed. See INSTALLATION for
     72 	further details.
     73 
     74 2001-07-16 15:50  kbk
     75 
     76 	* idles: Add a script "idles" which opens a Python Shell window.
     77 	
     78 	The default behaviour of idlefork idle is to open an editor window
     79 	instead of a shell. Complex expressions may be run in a fresh
     80 	environment by selecting "run".  There are times, however, when a
     81 	shell is desired.  Though one can be started by "idle -t 'foo'",
     82 	this script is more convenient.  In addition, a shell and an editor
     83 	window can be started in parallel by "idles -e foo.py".
     84 
     85 2001-07-16 15:25  kbk
     86 
     87 	* PyShell.py: Call out IDLE Fork in startup message.
     88 
     89 2001-07-16 14:00  kbk
     90 
     91 	* PyShell.py, setup.py: Add a script "idles" which opens a Python
     92 	Shell window.
     93 	
     94 	The default behaviour of idlefork idle is to open an editor window
     95 	instead of a shell. Complex expressions may be run in a fresh
     96 	environment by selecting "run".  There are times, however, when a
     97 	shell is desired.  Though one can be started by "idle -t 'foo'",
     98 	this script is more convenient.  In addition, a shell and an editor
     99 	window can be started in parallel by "idles -e foo.py".
    100 
    101 2001-07-15 03:06  kbk
    102 
    103 	* pyclbr.py, tabnanny.py: tabnanny and pyclbr are now found in /Lib
    104 
    105 2001-07-15 02:29  kbk
    106 
    107 	* BrowserControl.py: Remove, was retained for 1.5.2 support
    108 
    109 2001-07-14 15:48  kbk
    110 
    111 	* setup.py: Installing Idle to site-packages via Distutils does not
    112 	copy the Idle help.txt file.
    113 	
    114 	Ref SF Python Patch 422471
    115 
    116 2001-07-14 15:26  kbk
    117 
    118 	* keydefs.py: py-cvs-2001_07_13 (Rev 1.3) merge
    119 	
    120 	"Make copy, cut and paste events case insensitive.  Reported by
    121 	Patrick K. O'Brien on idle-dev. (Should other bindings follow
    122 	suit?)" --GvR
    123 
    124 2001-07-14 15:21  kbk
    125 
    126 	* idle.py: py-cvs-2001_07_13 (Rev 1.4) merge
    127 	
    128 	"Move the action of loading the configuration to the IdleConf
    129 	module rather than the idle.py script.	This has advantages and
    130 	disadvantages; the biggest advantage being that we can more easily
    131 	have an alternative main program."  --GvR
    132 
    133 2001-07-14 15:18  kbk
    134 
    135 	* extend.txt: py-cvs-2001_07_13 (Rev 1.4) merge
    136 	
    137 	"Quick update to the extension mechanism (extend.py is gone, long
    138 	live config.txt)" --GvR
    139 
    140 2001-07-14 15:15  kbk
    141 
    142 	* StackViewer.py: py-cvs-2001_07_13 (Rev 1.16) merge
    143 	
    144 	"Refactored, with some future plans in mind. This now uses the new
    145 	gotofileline() method defined in FileList.py"  --GvR
    146 
    147 2001-07-14 15:10  kbk
    148 
    149 	* PyShell.py: py-cvs-2001_07_13 (Rev 1.34) merge
    150 	
    151 	"Amazing.  A very subtle change in policy in descr-branch actually
    152 	found a bug here.  Here's the deal: Class PyShell derives from
    153 	class OutputWindow.  Method PyShell.close() wants to invoke its
    154 	parent method, but because PyShell long ago was inherited from
    155 	class PyShellEditorWindow, it invokes
    156 	PyShelEditorWindow.close(self).  Now, class PyShellEditorWindow
    157 	itself derives from class OutputWindow, and inherits the close()
    158 	method from there without overriding it.  Under the old rules,
    159 	PyShellEditorWindow.close would return an unbound method restricted
    160 	to the class that defined the implementation of close(), which was
    161 	OutputWindow.close.  Under the new rules, the unbound method is
    162 	restricted to the class whose method was requested, that is
    163 	PyShellEditorWindow, and this was correctly trapped as an error."
    164 	--GvR
    165 
    166 2001-07-14 14:59  kbk
    167 
    168 	* PyParse.py: py-cvs-2001_07_13 (Rel 1.9) merge
    169 	
    170 	"Taught IDLE's autoident parser that "yield" is a keyword that
    171 	begins a stmt.	Along w/ the preceding change to keyword.py, making
    172 	all this work w/ a future-stmt just looks harder and harder."
    173 	--tim_one
    174 	
    175 	(From Rel 1.8: "Hack to make this still work with Python 1.5.2. 
    176 	;-( " --fdrake)
    177 
    178 2001-07-14 14:51  kbk
    179 
    180 	* IdleConf.py: py-cvs-2001_07_13 (Rel 1.7) merge
    181 	
    182 	"Move the action of loading the configuration to the IdleConf
    183 	module rather than the idle.py script.	This has advantages and
    184 	disadvantages; the biggest advantage being that we can more easily
    185 	have an alternative main program." --GvR
    186 
    187 2001-07-14 14:45  kbk
    188 
    189 	* FileList.py: py-cvs-2000_07_13 (Rev 1.9) merge
    190 	
    191 	"Delete goodname() method, which is unused. Add gotofileline(), a
    192 	convenience method which I intend to use in a variant. Rename
    193 	test() to _test()."  --GvR
    194 	
    195 	This was an interesting merge. The join completely missed removing
    196 	goodname(), which was adjacent, but outside of, a small conflict. 
    197 	I only caught it by comparing the 1.1.3.2/1.1.3.3 diff.  CVS ain't
    198 	infallible.
    199 
    200 2001-07-14 13:58  kbk
    201 
    202 	* EditorWindow.py: py-cvs-2000_07_13 (Rev 1.38) merge "Remove
    203 	legacy support for the BrowserControl module; the webbrowser module
    204 	has been included since Python 2.0, and that is the preferred
    205 	interface." --fdrake
    206 
    207 2001-07-14 13:32  kbk
    208 
    209 	* EditorWindow.py, FileList.py, IdleConf.py, PyParse.py,
    210 	PyShell.py, StackViewer.py, extend.txt, idle.py, keydefs.py: Import
    211 	the 2001 July 13 23:59 GMT version of Python CVS IDLE on the
    212 	existing 1.1.3 vendor branch named py-cvs-vendor-branch. Release
    213 	tag is py-cvs-2001_07_13.
    214 
    215 2001-07-14 12:02  kbk
    216 
    217 	* Icons/python.gif: py-cvs-rel2_1 (Rev 1.2) merge Copied py-cvs rev
    218 	1.2 changed file to idlefork MAIN
    219 
    220 2001-07-14 11:58  kbk
    221 
    222 	* Icons/minusnode.gif: py-cvs-rel2_1 (Rev 1.2) merge Copied py-cvs
    223 	1.2 changed file to idlefork MAIN
    224 
    225 2001-07-14 11:23  kbk
    226 
    227 	* ScrolledList.py: py-cvs-rel2_1 (rev 1.5) merge - whitespace
    228 	normalization
    229 
    230 2001-07-14 11:20  kbk
    231 
    232 	* Separator.py: py-cvs-rel2_1 (Rev 1.3) merge - whitespace
    233 	normalization
    234 
    235 2001-07-14 11:16  kbk
    236 
    237 	* StackViewer.py: py-cvs-rel2_1 (Rev 1.15) merge - whitespace
    238 	normalization
    239 
    240 2001-07-14 11:14  kbk
    241 
    242 	* ToolTip.py: py-cvs-rel2_1 (Rev 1.2) merge - whitespace
    243 	normalization
    244 
    245 2001-07-14 10:13  kbk
    246 
    247 	* PyShell.py: cvs-py-rel2_1 (Rev 1.29 - 1.33) merge
    248 	
    249 	Merged the following py-cvs revs without conflict: 1.29 Reduce
    250 	copyright text output at startup 1.30 Delay setting sys.args until
    251 	Tkinter is fully initialized 1.31 Whitespace normalization 1.32
    252 	Turn syntax warning into error when interactive 1.33 Fix warning
    253 	initialization bug
    254 	
    255 	Note that module is extensively modified wrt py-cvs
    256 
    257 2001-07-14 06:33  kbk
    258 
    259 	* PyParse.py: py-cvs-rel2_1 (Rev 1.6 - 1.8) merge Fix autoindent
    260 	bug and deflect Unicode from text.get()
    261 
    262 2001-07-14 06:00  kbk
    263 
    264 	* Percolator.py: py-cvs-rel2_1 (Rev 1.3) "move "from Tkinter import
    265 	*" to module level" --jhylton
    266 
    267 2001-07-14 05:57  kbk
    268 
    269 	* PathBrowser.py: py-cvs-rel2_1 (Rev 1.6) merge - whitespace
    270 	normalization
    271 
    272 2001-07-14 05:49  kbk
    273 
    274 	* ParenMatch.py: cvs-py-rel2_1 (Rev 1.5) merge - whitespace
    275 	normalization
    276 
    277 2001-07-14 03:57  kbk
    278 
    279 	* ObjectBrowser.py: py-cvs-rel2_1 (Rev 1.3) merge "Make the test
    280 	program work outside IDLE."  -- GvR
    281 
    282 2001-07-14 03:52  kbk
    283 
    284 	* MultiStatusBar.py: py-cvs-rel2_1 (Rev 1.2) merge - whitespace
    285 	normalization
    286 
    287 2001-07-14 03:44  kbk
    288 
    289 	* MultiScrolledLists.py: py-cvs-rel2_1 (Rev 1.2) merge - whitespace
    290 	normalization
    291 
    292 2001-07-14 03:40  kbk
    293 
    294 	* IdleHistory.py: py-cvs-rel2_1 (Rev 1.4) merge - whitespace
    295 	normalization
    296 
    297 2001-07-14 03:38  kbk
    298 
    299 	* IdleConf.py: py-cvs-rel2_1 (Rev 1.6) merge - whitespace
    300 	normalization
    301 
    302 2001-07-13 14:18  kbk
    303 
    304 	* IOBinding.py: py-cvs-rel2_1 (Rev 1.4) merge - move "import *" to
    305 	module level
    306 
    307 2001-07-13 14:12  kbk
    308 
    309 	* FormatParagraph.py: py-cvs-rel2_1 (Rev 1.9) merge - whitespace
    310 	normalization
    311 
    312 2001-07-13 14:07  kbk
    313 
    314 	* FileList.py: py-cvs-rel2_1 (Rev 1.8) merge - whitespace
    315 	normalization
    316 
    317 2001-07-13 13:35  kbk
    318 
    319 	* EditorWindow.py: py-cvs-rel2_1 (Rev 1.33 - 1.37) merge
    320 	
    321 	VP IDLE version depended on VP's ExecBinding.py and spawn.py to get
    322 	the path to the Windows Doc directory (relative to python.exe).
    323 	Removed this conflicting code in favor of py-cvs updates which on
    324 	Windows use a hard coded path relative to the location of this
    325 	module. py-cvs updates include support for webbrowser.py.  Module
    326 	still has BrowserControl.py for 1.5.2 support.
    327 	
    328 	At this point, the differences wrt py-cvs relate to menu
    329 	functionality.
    330 
    331 2001-07-13 11:30  kbk
    332 
    333 	* ConfigParser.py: py-cvs-rel2_1 merge - Remove, lives in /Lib
    334 
    335 2001-07-13 10:10  kbk
    336 
    337 	* Delegator.py: py-cvs-rel2_1 (Rev 1.3) merge - whitespace
    338 	normalization
    339 
    340 2001-07-13 10:07  kbk
    341 
    342 	* Debugger.py: py-cvs-rel2_1 (Rev 1.15) merge - whitespace
    343 	normalization
    344 
    345 2001-07-13 10:04  kbk
    346 
    347 	* ColorDelegator.py: py-cvs-rel2_1 (Rev 1.11 and 1.12) merge
    348 	Colorize "as" after "import" / use DEBUG instead of __debug__
    349 
    350 2001-07-13 09:54  kbk
    351 
    352 	* ClassBrowser.py: py-cvs-rel2_1 (Rev 1.12) merge - whitespace
    353 	normalization
    354 
    355 2001-07-13 09:41  kbk
    356 
    357 	* BrowserControl.py: py-cvs-rel2_1 (Rev 1.1) merge - New File -
    358 	Force HEAD to trunk with -f Note: browser.py was renamed
    359 	BrowserControl.py 10 May 2000. It provides a collection of classes
    360 	and convenience functions to control external browsers "for 1.5.2
    361 	support". It was removed from py-cvs 18 April 2001.
    362 
    363 2001-07-13 09:10  kbk
    364 
    365 	* CallTips.py: py-cvs-rel2_1 (Rev 1.8) merge - whitespace
    366 	normalization
    367 
    368 2001-07-13 08:26  kbk
    369 
    370 	* CallTipWindow.py: py-cvs-rel2_1 (Rev 1.3) merge - whitespace
    371 	normalization
    372 
    373 2001-07-13 08:13  kbk
    374 
    375 	* AutoExpand.py: py-cvs-rel1_2 (Rev 1.4) merge, "Add Alt-slash to
    376 	Unix keydefs (I somehow need it on RH 6.2).  Get rid of assignment
    377 	to unused self.text.wordlist."	--GvR
    378 
    379 2001-07-12 16:54  elguavas
    380 
    381 	* ReplaceDialog.py: py-cvs merge, python 1.5.2 compatibility
    382 
    383 2001-07-12 16:46  elguavas
    384 
    385 	* ScriptBinding.py: py-cvs merge, better error dialog
    386 
    387 2001-07-12 16:38  elguavas
    388 
    389 	* TODO.txt: py-cvs merge, additions
    390 
    391 2001-07-12 15:35  elguavas
    392 
    393 	* WindowList.py: py-cvs merge, correct indentation
    394 
    395 2001-07-12 15:24  elguavas
    396 
    397 	* config.txt: py-cvs merge, correct typo
    398 
    399 2001-07-12 15:21  elguavas
    400 
    401 	* help.txt: py-cvs merge, update colour changing info
    402 
    403 2001-07-12 14:51  elguavas
    404 
    405 	* idle.py: py-cvs merge, idle_dir loading changed
    406 
    407 2001-07-12 14:44  elguavas
    408 
    409 	* idlever.py: py-cvs merge, version update
    410 
    411 2001-07-11 12:53  kbk
    412 
    413 	* BrowserControl.py: Initial revision
    414 
    415 2001-07-11 12:53  kbk
    416 
    417 	* AutoExpand.py, BrowserControl.py, CallTipWindow.py, CallTips.py,
    418 	ClassBrowser.py, ColorDelegator.py, Debugger.py, Delegator.py,
    419 	EditorWindow.py, FileList.py, FormatParagraph.py, IOBinding.py,
    420 	IdleConf.py, IdleHistory.py, MultiScrolledLists.py,
    421 	MultiStatusBar.py, ObjectBrowser.py, OutputWindow.py,
    422 	ParenMatch.py, PathBrowser.py, Percolator.py, PyParse.py,
    423 	PyShell.py, RemoteInterp.py, ReplaceDialog.py, ScriptBinding.py,
    424 	ScrolledList.py, Separator.py, StackViewer.py, TODO.txt,
    425 	ToolTip.py, WindowList.py, config.txt, help.txt, idle, idle.bat,
    426 	idle.py, idlever.py, setup.py, Icons/minusnode.gif,
    427 	Icons/python.gif: Import the release 2.1 version of Python CVS IDLE
    428 	on the existing 1.1.3 vendor branch named py-cvs-vendor-branch,
    429 	with release tag py-cvs-rel2_1.
    430 
    431 2001-07-11 12:34  kbk
    432 
    433 	* AutoExpand.py, AutoIndent.py, Bindings.py, CallTipWindow.py,
    434 	CallTips.py, ChangeLog, ClassBrowser.py, ColorDelegator.py,
    435 	Debugger.py, Delegator.py, EditorWindow.py, FileList.py,
    436 	FormatParagraph.py, FrameViewer.py, GrepDialog.py, IOBinding.py,
    437 	IdleConf.py, IdleHistory.py, MultiScrolledLists.py,
    438 	MultiStatusBar.py, NEWS.txt, ObjectBrowser.py, OldStackViewer.py,
    439 	OutputWindow.py, ParenMatch.py, PathBrowser.py, Percolator.py,
    440 	PyParse.py, PyShell.py, README.txt, RemoteInterp.py,
    441 	ReplaceDialog.py, ScriptBinding.py, ScrolledList.py,
    442 	SearchBinding.py, SearchDialog.py, SearchDialogBase.py,
    443 	SearchEngine.py, Separator.py, StackViewer.py, TODO.txt,
    444 	ToolTip.py, TreeWidget.py, UndoDelegator.py, WidgetRedirector.py,
    445 	WindowList.py, ZoomHeight.py, __init__.py, config-unix.txt,
    446 	config-win.txt, config.txt, eventparse.py, extend.txt, help.txt,
    447 	idle.bat, idle.py, idle.pyw, idlever.py, keydefs.py, pyclbr.py,
    448 	tabnanny.py, testcode.py, Icons/folder.gif, Icons/minusnode.gif,
    449 	Icons/openfolder.gif, Icons/plusnode.gif, Icons/python.gif,
    450 	Icons/tk.gif: Import the 9 March 2000 version of Python CVS IDLE as
    451 	1.1.3 vendor branch named py-cvs-vendor-branch.
    452 
    453 2001-07-04 13:43  kbk
    454 
    455 	* Icons/: folder.gif, minusnode.gif, openfolder.gif, plusnode.gif,
    456 	python.gif, tk.gif: Null commit with -f option to force an uprev
    457 	and put HEADs firmly on the trunk.
    458 
    459 2001-07-04 13:15  kbk
    460 
    461 	* AutoExpand.py, AutoIndent.py, Bindings.py, CallTipWindow.py,
    462 	CallTips.py, ChangeLog, ClassBrowser.py, ColorDelegator.py,
    463 	ConfigParser.py, Debugger.py, Delegator.py, EditorWindow.py,
    464 	ExecBinding.py, FileList.py, FormatParagraph.py, FrameViewer.py,
    465 	GrepDialog.py, IDLEFORK.html, IOBinding.py, IdleConf.py,
    466 	IdleHistory.py, MultiScrolledLists.py, MultiStatusBar.py, NEWS.txt,
    467 	ObjectBrowser.py, OldStackViewer.py, OutputWindow.py,
    468 	ParenMatch.py, PathBrowser.py, Percolator.py, PyParse.py,
    469 	PyShell.py, README.txt, Remote.py, RemoteInterp.py,
    470 	ReplaceDialog.py, ScriptBinding.py, ScrolledList.py,
    471 	SearchBinding.py, SearchDialog.py, SearchDialogBase.py,
    472 	SearchEngine.py, Separator.py, StackViewer.py, TODO.txt,
    473 	ToolTip.py, TreeWidget.py, UndoDelegator.py, WidgetRedirector.py,
    474 	WindowList.py, ZoomHeight.py, __init__.py, config-unix.txt,
    475 	config-win.txt, config.txt, eventparse.py, extend.txt, help.txt,
    476 	idle, idle.bat, idle.py, idle.pyw, idlever.py, keydefs.py,
    477 	loader.py, protocol.py, pyclbr.py, setup.py, spawn.py, tabnanny.py,
    478 	testcode.py: Null commit with -f option to force an uprev and put
    479 	HEADs firmly on the trunk.
    480 
    481 2001-06-27 10:24  elguavas
    482 
    483 	* IDLEFORK.html: updated contact details
    484 
    485 2001-06-25 17:23  elguavas
    486 
    487 	* idle, RemoteInterp.py, setup.py: Initial revision
    488 
    489 2001-06-25 17:23  elguavas
    490 
    491 	* idle, RemoteInterp.py, setup.py: import current python cvs idle
    492 	as a vendor branch
    493 
    494 2001-06-24 15:10  elguavas
    495 
    496 	* IDLEFORK.html: tiny change to test new syncmail setup
    497 
    498 2001-06-24 14:41  elguavas
    499 
    500 	* IDLEFORK.html: change to new developer contact, also a test
    501 	commit for new syncmail setup
    502 
    503 2001-06-23 18:15  elguavas
    504 
    505 	* IDLEFORK.html: tiny test update for revitalised idle-fork
    506 
    507 2000-09-24 17:29  nriley
    508 
    509 	* protocol.py: Fixes for Python 1.6 compatibility - socket bind and
    510 	connect get a tuple instead two arguments.
    511 
    512 2000-09-24 17:28  nriley
    513 
    514 	* spawn.py: Change for Python 1.6 compatibility - UNIX's 'os'
    515 	module defines 'spawnv' now, so we check for 'fork' first.
    516 
    517 2000-08-15 22:51  nowonder
    518 
    519 	* IDLEFORK.html: 
    520 	corrected email address
    521 
    522 2000-08-15 22:47  nowonder
    523 
    524 	* IDLEFORK.html: 
    525 	added .html file for http://idlefork.sourceforge.net
    526 
    527 2000-08-15 11:13  dscherer
    528 
    529 	* AutoExpand.py, AutoIndent.py, Bindings.py, CallTipWindow.py,
    530 	CallTips.py, __init__.py, ChangeLog, ClassBrowser.py,
    531 	ColorDelegator.py, ConfigParser.py, Debugger.py, Delegator.py,
    532 	FileList.py, FormatParagraph.py, FrameViewer.py, GrepDialog.py,
    533 	IOBinding.py, IdleConf.py, IdleHistory.py, MultiScrolledLists.py,
    534 	MultiStatusBar.py, NEWS.txt, ObjectBrowser.py, OldStackViewer.py,
    535 	OutputWindow.py, ParenMatch.py, PathBrowser.py, Percolator.py,
    536 	PyParse.py, PyShell.py, README.txt, ReplaceDialog.py,
    537 	ScriptBinding.py, ScrolledList.py, SearchBinding.py,
    538 	SearchDialog.py, SearchDialogBase.py, SearchEngine.py,
    539 	Separator.py, StackViewer.py, TODO.txt, ToolTip.py, TreeWidget.py,
    540 	UndoDelegator.py, WidgetRedirector.py, WindowList.py, help.txt,
    541 	ZoomHeight.py, config-unix.txt, config-win.txt, config.txt,
    542 	eventparse.py, extend.txt, idle.bat, idle.py, idle.pyw, idlever.py,
    543 	keydefs.py, loader.py, pyclbr.py, tabnanny.py, testcode.py,
    544 	EditorWindow.py, ExecBinding.py, Remote.py, protocol.py, spawn.py,
    545 	Icons/folder.gif, Icons/minusnode.gif, Icons/openfolder.gif,
    546 	Icons/plusnode.gif, Icons/python.gif, Icons/tk.gif: Initial
    547 	revision
    548 
    549 2000-08-15 11:13  dscherer
    550 
    551 	* AutoExpand.py, AutoIndent.py, Bindings.py, CallTipWindow.py,
    552 	CallTips.py, __init__.py, ChangeLog, ClassBrowser.py,
    553 	ColorDelegator.py, ConfigParser.py, Debugger.py, Delegator.py,
    554 	FileList.py, FormatParagraph.py, FrameViewer.py, GrepDialog.py,
    555 	IOBinding.py, IdleConf.py, IdleHistory.py, MultiScrolledLists.py,
    556 	MultiStatusBar.py, NEWS.txt, ObjectBrowser.py, OldStackViewer.py,
    557 	OutputWindow.py, ParenMatch.py, PathBrowser.py, Percolator.py,
    558 	PyParse.py, PyShell.py, README.txt, ReplaceDialog.py,
    559 	ScriptBinding.py, ScrolledList.py, SearchBinding.py,
    560 	SearchDialog.py, SearchDialogBase.py, SearchEngine.py,
    561 	Separator.py, StackViewer.py, TODO.txt, ToolTip.py, TreeWidget.py,
    562 	UndoDelegator.py, WidgetRedirector.py, WindowList.py, help.txt,
    563 	ZoomHeight.py, config-unix.txt, config-win.txt, config.txt,
    564 	eventparse.py, extend.txt, idle.bat, idle.py, idle.pyw, idlever.py,
    565 	keydefs.py, loader.py, pyclbr.py, tabnanny.py, testcode.py,
    566 	EditorWindow.py, ExecBinding.py, Remote.py, protocol.py, spawn.py,
    567 	Icons/folder.gif, Icons/minusnode.gif, Icons/openfolder.gif,
    568 	Icons/plusnode.gif, Icons/python.gif, Icons/tk.gif: Modified IDLE
    569 	from VPython 0.2
    570 
    571 
    572 original IDLE ChangeLog:
    573 ========================
    574 
    575 Tue Feb 15 18:08:19 2000  Guido van Rossum  <guido (a] cnri.reston.va.us>
    576 
    577 	* NEWS.txt: Notice status bar and stack viewer.
    578 
    579 	* EditorWindow.py: Support for Moshe's status bar.
    580 
    581 	* MultiStatusBar.py: Status bar code -- by Moshe Zadka.
    582 
    583 	* OldStackViewer.py:
    584 	Adding the old stack viewer implementation back, for the debugger.
    585 
    586 	* StackViewer.py: New stack viewer, uses a tree widget.
    587 	(XXX: the debugger doesn't yet use this.)
    588 
    589 	* WindowList.py:
    590 	Correct a typo and remove an unqualified except that was hiding the error.
    591 
    592 	* ClassBrowser.py: Add an XXX comment about the ClassBrowser AIP.
    593 
    594 	* ChangeLog: Updated change log.
    595 
    596 	* NEWS.txt: News update.  Probably incomplete; what else is new?
    597 
    598 	* README.txt:
    599 	Updated for pending IDLE 0.5 release (still very rough -- just getting
    600 	it out in a more convenient format than CVS).
    601 
    602 	* TODO.txt: Tiny addition.
    603 
    604 Thu Sep  9 14:16:02 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    605 
    606 	* TODO.txt: A few new TODO entries.
    607 
    608 Thu Aug 26 23:06:22 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    609 
    610 	* Bindings.py: Add Python Documentation entry to Help menu.
    611 
    612 	* EditorWindow.py:
    613 	Find the help.txt file relative to __file__ or ".", not in sys.path.
    614 	(Suggested by Moshe Zadka, but implemented differently.)
    615 
    616 	Add <<python-docs>> event which, on Unix, brings up Netscape pointing
    617 	to http://www.python.doc/current/ (a local copy would be nice but its
    618 	location can't be predicted).  Windows solution TBD.
    619 
    620 Wed Aug 11 14:55:43 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    621 
    622 	* TreeWidget.py:
    623 	Moshe noticed an inconsistency in his comment, so I'm rephrasing it to
    624 	be clearer.
    625 
    626 	* TreeWidget.py:
    627 	Patch inspired by Moshe Zadka to search for the Icons directory in the
    628 	same directory as __file__, rather than searching for it along sys.path.
    629 	This works better when idle is a package.
    630 
    631 Thu Jul 15 13:11:02 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    632 
    633 	* TODO.txt: New wishes.
    634 
    635 Sat Jul 10 13:17:35 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    636 
    637 	* IdlePrefs.py:
    638 	Make the color for stderr red (i.e. the standard warning/danger/stop
    639 	color) rather than green.  Suggested by Sam Schulenburg.
    640 
    641 Fri Jun 25 17:26:34 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    642 
    643 	* PyShell.py: Close debugger when closing.  This may break a cycle.
    644 
    645 	* Debugger.py: Break cycle on close.
    646 
    647 	* ClassBrowser.py: Destroy the tree when closing.
    648 
    649 	* TreeWidget.py: Add destroy() method to recursively destroy a tree.
    650 
    651 	* PyShell.py: Extend _close() to break cycles.
    652 	Break some other cycles too (and destroy the root when done).
    653 
    654 	* EditorWindow.py:
    655 	Add _close() method that does the actual cleanup (close() asks the
    656 	user what they want first if there's unsaved stuff, and may cancel).
    657 	It closes more than before.
    658 
    659 	Add unload_extensions() method to unload all extensions; called from
    660 	_close().  It calls an extension's close() method if it has one.
    661 
    662 	* Percolator.py: Add close() method that breaks cycles.
    663 
    664 	* WidgetRedirector.py: Add unregister() method.
    665 	Unregister everything at closing.
    666 	Don't call close() in __del__, rely on explicit call to close().
    667 
    668 	* IOBinding.py, FormatParagraph.py, CallTips.py:
    669 	Add close() method that breaks a cycle.
    670 
    671 Fri Jun 11 15:03:00 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    672 
    673 	* AutoIndent.py, EditorWindow.py, FormatParagraph.py:
    674 	Tim Peters smart.patch:
    675 
    676 	EditorWindow.py:
    677 
    678 	+ Added get_tabwidth & set_tabwidth "virtual text" methods, that get/set the
    679 	widget's view of what a tab means.
    680 
    681 	+ Moved TK_TABWIDTH_DEFAULT here from AutoIndent.
    682 
    683 	+ Renamed Mark's get_selection_index to get_selection_indices (sorry, Mark,
    684 	but the name was plain wrong <wink>).
    685 
    686 	FormatParagraph.py:  renamed use of get_selection_index.
    687 
    688 	AutoIndent.py:
    689 
    690 	+ Moved TK_TABWIDTH_DEFAULT to EditorWindow.
    691 
    692 	+ Rewrote set_indentation_params to use new VTW get/set_tabwidth methods.
    693 
    694 	+ Changed smart_backspace_event to delete whitespace back to closest
    695 	preceding virtual tab stop or real character (note that this may require
    696 	inserting characters if backspacing over a tab!).
    697 
    698 	+ Nuked almost references to the selection tag, in favor of using
    699 	get_selection_indices.  The sole exception is in set_region, for which no
    700 	"set_selection" abstraction has yet been agreed upon.
    701 
    702 	+ Had too much fun using the spiffy new features of the format-paragraph
    703 	cmd.
    704 
    705 Thu Jun 10 17:48:02 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    706 
    707 	* FormatParagraph.py:
    708 	Code by Mark Hammond to format paragraphs embedded in comments.
    709 	Read the comments (which I reformatted using the new feature :-)
    710 	for some limitations.
    711 
    712 	* EditorWindow.py:
    713 	Added abstraction get_selection_index() (Mark Hammond).  Also
    714 	reformatted some comment blocks to show off a cool feature I'm about
    715 	to check in next.
    716 
    717 	* ClassBrowser.py:
    718 	Adapt to the new pyclbr's support of listing top-level functions.  If
    719 	this functionality is not present (e.g. when used with a vintage
    720 	Python 1.5.2 installation) top-level functions are not listed.
    721 
    722 	(Hmm...  Any distribution of IDLE 0.5 should probably include a copy
    723 	of the new pyclbr.py!)
    724 
    725 	* AutoIndent.py:
    726 	Fix off-by-one error in Tim's recent change to comment_region(): the
    727 	list of lines returned by get_region() contains an empty line at the
    728 	end representing the start of the next line, and this shouldn't be
    729 	commented out!
    730 
    731 	* CallTips.py:
    732 	Mark Hammond writes: Here is another change that allows it to work for
    733 	class creation - tries to locate an __init__ function.  Also updated
    734 	the test code to reflect your new "***" change.
    735 
    736 	* CallTipWindow.py:
    737 	Mark Hammond writes: Tim's suggestion of copying the font for the
    738 	CallTipWindow from the text control makes sense, and actually makes
    739 	the control look better IMO.
    740 
    741 Wed Jun  9 20:34:57 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    742 
    743 	* CallTips.py:
    744 	Append "..." if the appropriate flag (for varargs) in co_flags is set.
    745 	Ditto "***" for kwargs.
    746 
    747 Tue Jun  8 13:06:07 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    748 
    749 	* ReplaceDialog.py:
    750 	Hmm...  Tim didn't turn "replace all" into a single undo block.
    751 	I think I like it better if it os, so here.
    752 
    753 	* ReplaceDialog.py: Tim Peters: made replacement atomic for undo/redo.
    754 
    755 	* AutoIndent.py: Tim Peters:
    756 
    757 	+ Set usetabs=1.  Editing pyclbr.py was driving me nuts <0.6 wink>.
    758 	usetabs=1 is the Emacs pymode default too, and thanks to indentwidth !=
    759 	tabwidth magical usetabs disabling, new files are still created with tabs
    760 	turned off.  The only implication is that if you open a file whose first
    761 	indent is a single tab, IDLE will now magically use tabs for that file (and
    762 	set indentwidth to 8).  Note that the whole scheme doesn't work right for
    763 	PythonWin, though, since Windows users typically set tabwidth to 4; Mark
    764 	probably has to hide the IDLE algorithm from them (which he already knows).
    765 
    766 	+ Changed comment_region_event to stick "##" in front of every line.  The
    767 	"holes" previously left on blank lines were visually confusing (made it
    768 	needlessly hard to figure out what to uncomment later).
    769 
    770 Mon Jun  7 15:38:40 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    771 
    772 	* TreeWidget.py, ObjectBrowser.py:
    773 	Remove unnecessary reference to pyclbr from test() code.
    774 
    775 	* PyParse.py: Tim Peters:
    776 
    777 	Smarter logic for finding a parse synch point.
    778 
    779 	Does a half to a fifth the work in normal cases; don't notice the speedup,
    780 	but makes  more breathing room for other extensions.
    781 
    782 	Speeds terrible cases by at least a factor of 10. "Terrible" == e.g. you put
    783 	""" at the start of Tkinter.py, undo it, zoom to the bottom, and start
    784 	typing in code.  Used to take about 8 seconds for ENTER to respond, now some
    785 	large fraction of a second.  The new code gets indented correctly, despite
    786 	that it all remains "string colored" until the colorizer catches up (after
    787 	which, ENTER appears instantaneous again).
    788 
    789 Fri Jun  4 19:21:19 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    790 
    791 	* extend.py: Might as well enable CallTips by default.
    792 	If there are too many complaints I'll remove it again or fix it.
    793 
    794 Thu Jun  3 14:32:16 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    795 
    796 	* AutoIndent.py, EditorWindow.py, PyParse.py:
    797 	New offerings by Tim Peters; he writes:
    798 
    799 	IDLE is now the first Python editor in the Universe not confused by my
    800 	doctest.py <wink>.
    801 
    802 	As threatened, this defines IDLE's is_char_in_string function as a
    803 	method of EditorWindow.  You just need to define one similarly in
    804 	whatever it is you pass as editwin to AutoIndent; looking at the
    805 	EditorWindow.py part of the patch should make this clear.
    806 
    807 	* GrepDialog.py: Enclose pattern in quotes in status message.
    808 
    809 	* CallTips.py:
    810 	Mark Hammond fixed some comments and improved the way the tip text is
    811 	constructed.
    812 
    813 Wed Jun  2 18:18:57 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    814 
    815 	* CallTips.py:
    816 	My fix to Mark's code: restore the universal check on <KeyRelease>.
    817 	Always cancel on <Key-Escape> or <ButtonPress>.
    818 
    819 	* CallTips.py:
    820 	A version that Mark Hammond posted to the newsgroup.  Has some newer
    821 	stuff for getting the tip.  Had to fix the Key-( and Key-) events
    822 	for Unix.  Will have to re-apply my patch for catching KeyRelease and
    823 	ButtonRelease events.
    824 
    825 	* CallTipWindow.py, CallTips.py:
    826 	Call tips by Mark Hammond (plus tiny fix by me.)
    827 
    828 	* IdleHistory.py:
    829 	Changes by Mark Hammond: (1) support optional output_sep argument to
    830 	the constructor so he can eliminate the sys.ps2 that PythonWin leaves
    831 	in the source; (2) remove duplicate history items.
    832 
    833 	* AutoIndent.py:
    834 	Changes by Mark Hammond to allow using IDLE extensions in PythonWin as
    835 	well: make three dialog routines instance variables.
    836 
    837 	* EditorWindow.py:
    838 	Change by Mark Hammond to allow using IDLE extensions in PythonWin as
    839 	well: make three dialog routines instance variables.
    840 
    841 Tue Jun  1 20:06:44 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    842 
    843 	* AutoIndent.py: Hah!  A fix of my own to Tim's code!
    844 	Unix bindings for <<toggle-tabs>> and <<change-indentwidth>> were
    845 	missing, and somehow that meant the events were never generated,
    846 	even though they were in the menu.  The new Unix bindings are now
    847 	the same as the Windows bindings (M-t and M-u).
    848 
    849 	* AutoIndent.py, PyParse.py, PyShell.py: Tim Peters again:
    850 
    851 	The new version (attached) is fast enough all the time in every real module
    852 	I have <whew!>.  You can make it slow by, e.g., creating an open list with
    853 	5,000 90-character identifiers (+ trailing comma) each on its own line, then
    854 	adding an item to the end -- but that still consumes less than a second on
    855 	my P5-166.  Response time in real code appears instantaneous.
    856 
    857 	Fixed some bugs.
    858 
    859 	New feature:  when hitting ENTER and the cursor is beyond the line's leading
    860 	indentation, whitespace is removed on both sides of the cursor; before
    861 	whitespace was removed only on the left; e.g., assuming the cursor is
    862 	between the comma and the space:
    863 
    864 	def something(arg1, arg2):
    865 	                   ^ cursor to the left of here, and hit ENTER
    866 	               arg2):   # new line used to end up here
    867 	              arg2):    # but now lines up the way you expect
    868 
    869 	New hack:  AutoIndent has grown a context_use_ps1 Boolean config option,
    870 	defaulting to 0 (false) and set to 1 (only) by PyShell.  Reason:  handling
    871 	the fancy stuff requires looking backward for a parsing synch point; ps1
    872 	lines are the only sensible thing to look for in a shell window, but are a
    873 	bad thing to look for in a file window (ps1 lines show up in my module
    874 	docstrings often).  PythonWin's shell should set this true too.
    875 
    876 	Persistent problem:  strings containing def/class can still screw things up
    877 	completely.  No improvement.  Simplest workaround is on the user's head, and
    878 	consists of inserting e.g.
    879 
    880 	def _(): pass
    881 
    882 	(or any other def/class) after the end of the multiline string that's
    883 	screwing them up.  This is especially irksome because IDLE's syntax coloring
    884 	is *not* confused, so when this happens the colors don't match the
    885 	indentation behavior they see.
    886 
    887 	* AutoIndent.py: Tim Peters again:
    888 
    889 	[Tim, after adding some bracket smarts to AutoIndent.py]
    890 	> ...
    891 	> What it can't possibly do without reparsing large gobs of text is
    892 	> suggest a reasonable indent level after you've *closed* a bracket
    893 	> left open on some previous line.
    894 	> ...
    895 
    896 	The attached can, and actually fast enough to use -- most of the time.  The
    897 	code is tricky beyond belief to achieve that, but it works so far; e.g.,
    898 
    899 	        return len(string.expandtabs(str[self.stmt_start :
    900 	                                         ^ indents to caret
    901 	                                         i],
    902 	                                     ^ indents to caret
    903 	                                     self.tabwidth)) + 1
    904 	    ^ indents to caret
    905 
    906 	It's about as smart as pymode now, wrt both bracket and backslash
    907 	continuation rules.  It does require reparsing large gobs of text, and if it
    908 	happens to find something that looks like a "def" or "class" or sys.ps1
    909 	buried in a multiline string, but didn't suck up enough preceding text to
    910 	see the start of the string, it's completely hosed.  I can't repair that --
    911 	it's just too slow to reparse from the start of the file all the time.
    912 
    913 	AutoIndent has grown a new num_context_lines tuple attribute that controls
    914 	how far to look back, and-- like other params --this could/should be made
    915 	user-overridable at startup and per-file on the fly.
    916 
    917 	* PyParse.py: New file by Tim Peters:
    918 
    919 	One new file in the attached, PyParse.py.  The LineStudier (whatever it was
    920 	called <wink>) class was removed from AutoIndent; PyParse subsumes its
    921 	functionality.
    922 
    923 	* AutoIndent.py: Tim Peters keeps revising this module (more to come):
    924 
    925 	Removed "New tabwidth" menu binding.
    926 
    927 	Added "a tab means how many spaces?" dialog to block tabify and untabify.  I
    928 	think prompting for this is good now:  they're usually at-most-once-per-file
    929 	commands, and IDLE can't let them change tabwidth from the Tk default
    930 	anymore, so IDLE can no longer presume to have any idea what a tab means.
    931 
    932 	Irony:  for the purpose of keeping comments aligned via tabs, Tk's
    933 	non-default approach is much nicer than the Emacs/Notepad/Codewright/vi/etc
    934 	approach.
    935 
    936 	* EditorWindow.py:
    937 	1. Catch NameError on import (could be raised by case mismatch on Windows).
    938 	2. No longer need to reset pyclbr cache and show watch cursor when calling
    939 	   ClassBrowser -- the ClassBrowser takes care of pyclbr and the TreeWidget
    940 	   takes care of the watch cursor.
    941 	3. Reset the focus to the current window after error message about class
    942 	   browser on buffer without filename.
    943 
    944 	* Icons/minusnode.gif, Icons/plusnode.gif: Missed a few.
    945 
    946 	* ClassBrowser.py, PathBrowser.py: Rewritten based on TreeWidget.py
    947 
    948 	* ObjectBrowser.py: Object browser, based on TreeWidget.py.
    949 
    950 	* TreeWidget.py: Tree widget done right.
    951 
    952 	* ToolTip.py: As yet unused code for tool tips.
    953 
    954 	* ScriptBinding.py:
    955 	Ensure sys.argv[0] is the script name on Run Script.
    956 
    957 	* ZoomHeight.py: Move zoom height functionality to separate function.
    958 
    959 	* Icons/folder.gif, Icons/openfolder.gif, Icons/python.gif, Icons/tk.gif:
    960 	A few icons used by ../TreeWidget.py and its callers.
    961 
    962 	* AutoIndent.py: New version by Tim Peters improves block opening test.
    963 
    964 Fri May 21 04:46:17 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    965 
    966 	* Attic/History.py, PyShell.py: Rename History to IdleHistory.
    967 	Add isatty() to pseudo files.
    968 
    969 	* StackViewer.py: Make initial stack viewer wider
    970 
    971 	* TODO.txt: New wishes
    972 
    973 	* AutoIndent.py, EditorWindow.py, PyShell.py:
    974 	Much improved autoindent and handling of tabs,
    975 	by Tim Peters.
    976 
    977 Mon May  3 15:49:52 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
    978 
    979 	* AutoIndent.py, EditorWindow.py, FormatParagraph.py, UndoDelegator.py:
    980 	Tim Peters writes:
    981 
    982 	I'm still unsure, but couldn't stand the virtual event trickery so tried a
    983 	different sin (adding undo_block_start/stop methods to the Text instance in
    984 	EditorWindow.py).  Like it or not, it's efficient and works <wink>.  Better
    985 	idea?
    986 
    987 	Give the attached a whirl.  Even if you hate the implementation, I think
    988 	you'll like the results.  Think I caught all the "block edit" cmds,
    989 	including Format Paragraph, plus subtler ones involving smart indents and
    990 	backspacing.
    991 
    992 	* WidgetRedirector.py: Tim Peters writes:
    993 
    994 	[W]hile trying to dope out how redirection works, stumbled into two
    995 	possible glitches.  In the first, it doesn't appear to make sense to try to
    996 	rename a command that's already been destroyed; in the second, the name
    997 	"previous" doesn't really bring to mind "ignore the previous value" <wink>.
    998 
    999 Fri Apr 30 19:39:25 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1000 
   1001 	* __init__.py: Support for using idle as a package.
   1002 
   1003 	* PathBrowser.py:
   1004 	Avoid listing files more than once (e.g. foomodule.so has two hits:
   1005 	once for foo + module.so, once for foomodule + .so).
   1006 
   1007 Mon Apr 26 22:20:38 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1008 
   1009 	* ChangeLog, ColorDelegator.py, PyShell.py: Tim Peters strikes again:
   1010 
   1011 	Ho ho ho -- that's trickier than it sounded!  The colorizer is working with
   1012 	"line.col" strings instead of Text marks, and the absolute coordinates of
   1013 	the point of interest can change across the self.update call (voice of
   1014 	baffled experience, when two quick backspaces no longer fooled it, but a
   1015 	backspace followed by a quick ENTER did <wink>).
   1016 
   1017 	Anyway, the attached appears to do the trick.  CPU usage goes way up when
   1018 	typing quickly into a long triple-quoted string, but the latency is fine for
   1019 	me (a relatively fast typist on a relatively slow machine).  Most of the
   1020 	changes here are left over from reducing the # of vrbl names to help me
   1021 	reason about the logic better; I hope the code is a *little* easier to
   1022 
   1023 Fri Apr 23 14:01:25 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1024 
   1025 	* EditorWindow.py:
   1026 	Provide full arguments to __import__ so it works in packagized IDLE.
   1027 
   1028 Thu Apr 22 23:20:17 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1029 
   1030         * help.txt:
   1031         Bunch of updates necessary due to recent changes; added docs for File
   1032         menu, command line and color preferences.
   1033 
   1034         * Bindings.py: Remove obsolete 'script' menu.
   1035 
   1036 	* TODO.txt: Several wishes fulfilled.
   1037 
   1038 	* OutputWindow.py:
   1039 	Moved classes OnDemandOutputWindow and PseudoFile here,
   1040 	from ScriptBinding.py where they are no longer needed.
   1041 
   1042 	* ScriptBinding.py:
   1043 	Mostly rewritten.  Instead of the old Run module and Debug module,
   1044 	there are two new commands:
   1045 
   1046 	Import module (F5) imports or reloads the module and also adds its
   1047 	name to the __main__ namespace.  This gets executed in the PyShell
   1048 	window under control of its debug settings.
   1049 
   1050 	Run script (Control-F5) is similar but executes the contents of the
   1051 	file directly in the __main__ namespace.
   1052 
   1053 	* PyShell.py: Nits: document use of $IDLESTARTUP; display idle version
   1054 
   1055 	* idlever.py: New version to celebrate new command line
   1056 
   1057 	* OutputWindow.py: Added flush(), for completeness.
   1058 
   1059 	* PyShell.py:
   1060 	A lot of changes to make the command line more useful.  You can now do:
   1061 	  idle.py -e file ...    -- to edit files
   1062 	  idle.py script arg ... -- to run a script
   1063 	  idle.py -c cmd arg ... -- to run a command
   1064 	Other options, see also the usage message (also new!) for more details:
   1065 	  -d       -- enable debugger
   1066 	  -s       -- run $IDLESTARTUP or $PYTHONSTARTUP
   1067 	  -t title -- set Python Shell window's title
   1068 	sys.argv is set accordingly, unless -e is used.
   1069 	sys.path is absolutized, and all relevant paths are inserted into it.
   1070 
   1071 	Other changes:
   1072 	- the environment in which commands are executed is now the
   1073 	  __main__ module
   1074 	- explicitly save sys.stdout etc., don't restore from sys.__stdout__
   1075 	- new interpreter methods execsource(), execfile(), stuffsource()
   1076 	- a few small nits
   1077 
   1078 	* TODO.txt:
   1079 	Some more TODO items.  Made up my mind about command line args,
   1080 	Run/Import, __main__.
   1081 
   1082 	* ColorDelegator.py:
   1083 	Super-elegant patch by Tim Peters that speeds up colorization
   1084 	dramatically (up to 15 times he claims).  Works by reading more than
   1085 	one line at a time, up to 100-line chunks (starting with one line and
   1086 	then doubling up to the limit).  On a typical machine (e.g. Tim's
   1087 	P5-166) this doesn't reduce interactive responsiveness in a noticeable
   1088 	way.
   1089 
   1090 Wed Apr 21 15:49:34 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1091 
   1092 	* ColorDelegator.py:
   1093 	Patch by Tim Peters to speed up colorizing of big multiline strings.
   1094 
   1095 Tue Apr 20 17:32:52 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1096 
   1097 	* extend.txt:
   1098 	For an event 'foo-bar', the corresponding method must be called
   1099 	foo_bar_event().  Therefore, fix the references to zoom_height() in
   1100 	the example.
   1101 
   1102 	* IdlePrefs.py: Restored the original IDLE color scheme.
   1103 
   1104 	* PyShell.py, IdlePrefs.py, ColorDelegator.py, EditorWindow.py:
   1105 	Color preferences code by Loren Luke (massaged by me somewhat)
   1106 
   1107 	* SearchEngine.py:
   1108 	Patch by Mark Favas: it fixes the search engine behaviour where an
   1109 	unsuccessful search wraps around and re-searches that part of the file
   1110 	between the start of the search and the end of the file - only really
   1111 	an issue for very large files, but... (also removes a redundant
   1112 	m.span() call).
   1113 
   1114 Mon Apr 19 16:26:02 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1115 
   1116 	* TODO.txt: A few wishes are now fulfilled.
   1117 
   1118 	* AutoIndent.py: Tim Peters implements some of my wishes:
   1119 
   1120 	o Makes the tab key intelligently insert spaces when appropriate
   1121 	(see Help list banter twixt David Ascher and me; idea stolen from
   1122 	every other editor on earth <wink>).
   1123 
   1124 	o newline_and_indent_event trims trailing whitespace on the old
   1125 	line (pymode and Codewright).
   1126 
   1127 	o newline_and_indent_event no longer fooled by trailing whitespace or
   1128 	comment after ":" (pymode, PTUI).
   1129 
   1130 	o newline_and_indent_event now reduces the new line's indentation after
   1131 	return, break, continue, raise and pass stmts (pymode).
   1132 
   1133 	The last two are easy to fool in the presence of strings &
   1134 	continuations, but pymode requires Emacs's high-powered C parsing
   1135 	functions to avoid that in finite time.
   1136 
   1137 ======================================================================
   1138 	Python release 1.5.2c1, IDLE version 0.4
   1139 ======================================================================
   1140 
   1141 Wed Apr  7 18:41:59 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1142 
   1143 	* README.txt, NEWS.txt: New version.
   1144 
   1145 	* idlever.py: Version bump awaiting impending new release.
   1146 	(Not much has changed :-( )
   1147 
   1148 Mon Mar 29 14:52:28 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1149 
   1150 	* ScriptBinding.py, PyShell.py:
   1151 	At Tim Peters' recommendation, add a dummy flush() method to
   1152 	PseudoFile.
   1153 
   1154 Thu Mar 11 23:21:23 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1155 
   1156 	* PathBrowser.py: Don't crash when sys.path contains an empty string.
   1157 
   1158 	* Attic/Outline.py: This file was never supposed to be part of IDLE.
   1159 
   1160 	* PathBrowser.py:
   1161 	- Don't crash in the case where a superclass is a string instead of a
   1162 	pyclbr.Class object; this can happen when the superclass is
   1163 	unrecognizable (to pyclbr), e.g. when module renaming is used.
   1164 
   1165 	- Show a watch cursor when calling pyclbr (since it may take a while
   1166 	recursively parsing imported modules!).
   1167 
   1168 Wed Mar 10 05:18:02 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1169 
   1170 	* EditorWindow.py, Bindings.py: Add PathBrowser to File module
   1171 
   1172 	* PathBrowser.py: "Path browser" - 4 scrolled lists displaying:
   1173 	    directories on sys.path
   1174 	    modules in selected directory
   1175 	    classes in selected module
   1176 	    methods of selected class
   1177 
   1178 	Sinlge clicking in a directory, module or class item updates the next
   1179 	column with info about the selected item.  Double clicking in a
   1180 	module, class or method item opens the file (and selects the clicked
   1181 	item if it is a class or method).
   1182 
   1183 	I guess eventually I should be using a tree widget for this, but the
   1184 	ones I've seen don't work well enough, so for now I use the old
   1185 	Smalltalk or NeXT style multi-column hierarchical browser.
   1186 
   1187 	* MultiScrolledLists.py:
   1188 	New utility: multiple scrolled lists in parallel
   1189 
   1190 	* ScrolledList.py: - White background.
   1191 	- Display "(None)" (or text of your choosing) when empty.
   1192 	- Don't set the focus.
   1193 
   1194 ======================================================================
   1195 	Python release 1.5.2b2, IDLE version 0.3
   1196 ======================================================================
   1197 	
   1198 Wed Feb 17 22:47:41 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1199 
   1200 	* NEWS.txt: News in 0.3.
   1201 
   1202 	* README.txt, idlever.py: Bump version to 0.3.
   1203 
   1204 	* EditorWindow.py:
   1205 	After all, we don't need to call the callbacks ourselves!
   1206 
   1207 	* WindowList.py:
   1208 	When deleting, call the callbacks *after* deleting the window from our list!
   1209 
   1210 	* EditorWindow.py:
   1211 	Fix up the Windows menu via the new callback mechanism instead of
   1212 	depending on menu post commands (which don't work when the menu is
   1213 	torn off).
   1214 
   1215 	* WindowList.py:
   1216 	Support callbacks to patch up Windows menus everywhere.
   1217 
   1218 	* ChangeLog: Oh, why not.  Checking in the Emacs-generated change log.
   1219 
   1220 Tue Feb 16 22:34:17 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1221 
   1222 	* ScriptBinding.py:
   1223 	Only pop up the stack viewer when requested in the Debug menu.
   1224 
   1225 Mon Feb  8 22:27:49 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1226 
   1227 	* WindowList.py: Don't crash if a window no longer exists.
   1228 
   1229 	* TODO.txt: Restructured a bit.
   1230 
   1231 Mon Feb  1 23:06:17 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1232 
   1233 	* PyShell.py: Add current dir or paths of file args to sys.path.
   1234 
   1235 	* Debugger.py: Add canonic() function -- for brand new bdb.py feature.
   1236 
   1237 	* StackViewer.py: Protect against accessing an empty stack.
   1238 
   1239 Fri Jan 29 20:44:45 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1240 
   1241 	* ZoomHeight.py:
   1242 	Use only the height to decide whether to zoom in or out.
   1243 
   1244 Thu Jan 28 22:24:30 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1245 
   1246 	* EditorWindow.py, FileList.py:
   1247 	Make sure the Tcl variables are shared between windows.
   1248 
   1249 	* PyShell.py, EditorWindow.py, Bindings.py:
   1250 	Move menu/key binding code from Bindings.py to EditorWindow.py,
   1251 	with changed APIs -- it makes much more sense there.
   1252 	Also add a new feature: if the first character of a menu label is
   1253 	a '!', it gets a checkbox.  Checkboxes are bound to Boolean Tcl variables
   1254 	that can be accessed through the new getvar/setvar/getrawvar API;
   1255 	the variable is named after the event to which the menu is bound.
   1256 
   1257 	* Debugger.py: Add Quit button to the debugger window.
   1258 
   1259 	* SearchDialog.py:
   1260 	When find_again() finds exactly the current selection, it's a failure.
   1261 
   1262 	* idle.py, Attic/idle: Rename idle -> idle.py
   1263 
   1264 Mon Jan 18 15:18:57 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1265 
   1266 	* EditorWindow.py, WindowList.py: Only deiconify when iconic.
   1267 
   1268 	* TODO.txt: Misc
   1269 
   1270 Tue Jan 12 22:14:34 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1271 
   1272 	* testcode.py, Attic/test.py:
   1273 	Renamed test.py to testcode.py so one can import Python's
   1274 	test package from inside IDLE.  (Suggested by Jack Jansen.)
   1275 
   1276 	* EditorWindow.py, ColorDelegator.py:
   1277 	Hack to close a window that is colorizing.
   1278 
   1279 	* Separator.py: Vladimir Marangozov's patch:
   1280 	The separator dances too much and seems to jump by arbitrary amounts
   1281 	in arbitrary directions when I try to move it for resizing the frames.
   1282 	This patch makes it more quiet.
   1283 
   1284 Mon Jan 11 14:52:40 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1285 
   1286 	* TODO.txt: Some requests have been fulfilled.
   1287 
   1288 	* EditorWindow.py:
   1289 	Set the cursor to a watch when opening the class browser (which may
   1290 	take quite a while, browsing multiple files).
   1291 
   1292 	Newer, better center() -- but assumes no wrapping.
   1293 
   1294 	* SearchBinding.py:
   1295 	Got rid of debug print statement in goto_line_event().
   1296 
   1297 	* ScriptBinding.py:
   1298 	I think I like it better if it prints the traceback even when it displays
   1299 	the stack viewer.
   1300 
   1301 	* Debugger.py: Bind ESC to close-window.
   1302 
   1303 	* ClassBrowser.py: Use a HSeparator between the classes and the items.
   1304 	Make the list of classes wider by default (40 chars).
   1305 	Bind ESC to close-window.
   1306 
   1307 	* Separator.py:
   1308 	Separator classes (draggable divider between two panes).
   1309 
   1310 Sat Jan  9 22:01:33 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1311 
   1312 	* WindowList.py:
   1313 	Don't traceback when wakeup() is called when the window has been destroyed.
   1314 	This can happen when a torn-of Windows menu references closed windows.
   1315 	And Tim Peters claims that the Windows menu is his favorite to tear off...
   1316 
   1317 	* EditorWindow.py: Allow tearing off of the Windows menu.
   1318 
   1319 	* StackViewer.py: Close on ESC.
   1320 
   1321 	* help.txt: Updated a bunch of things (it was mostly still 0.1!)
   1322 
   1323 	* extend.py: Added ScriptBinding to standard bindings.
   1324 
   1325 	* ScriptBinding.py:
   1326 	This now actually works.  See doc string.  It can run a module (i.e.
   1327 	import or reload) or debug it (same with debugger control).  Output
   1328 	goes to a fresh output window, only created when needed.
   1329 
   1330 ======================================================================
   1331 	Python release 1.5.2b1, IDLE version 0.2
   1332 ======================================================================
   1333 	
   1334 Fri Jan  8 17:26:02 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1335 
   1336 	* README.txt, NEWS.txt: What's new in this release.
   1337 
   1338 	* Bindings.py, PyShell.py:
   1339 	Paul Prescod's patches to allow the stack viewer to pop up when a
   1340 	traceback is printed.
   1341 
   1342 Thu Jan  7 00:12:15 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1343 
   1344 	* FormatParagraph.py:
   1345 	Change paragraph width limit to 70 (like Emacs M-Q).
   1346 
   1347 	* README.txt:
   1348 	Separating TODO from README.  Slight reformulation of features.  No
   1349 	exact release date.
   1350 
   1351 	* TODO.txt: Separating TODO from README.
   1352 
   1353 Mon Jan  4 21:19:09 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1354 
   1355 	* FormatParagraph.py:
   1356 	Hm.  There was a boundary condition error at the end of the file too.
   1357 
   1358 	* SearchBinding.py: Hm.  Add Unix binding for replace, too.
   1359 
   1360 	* keydefs.py: Ran eventparse.py again.
   1361 
   1362 	* FormatParagraph.py: Added Unix Meta-q key binding;
   1363 	fix find_paragraph when at start of file.
   1364 
   1365 	* AutoExpand.py: Added Meta-/ binding for Unix as alt for Alt-/.
   1366 
   1367 	* SearchBinding.py:
   1368 	Add unix binding for grep (otherwise the menu entry doesn't work!)
   1369 
   1370 	* ZoomHeight.py: Adjusted Unix height to work with fvwm96. :=(
   1371 
   1372 	* GrepDialog.py: Need to import sys!
   1373 
   1374 	* help.txt, extend.txt, README.txt: Formatted some paragraphs
   1375 
   1376 	* extend.py, FormatParagraph.py:
   1377 	Add new extension to reformat a (text) paragraph.
   1378 
   1379 	* ZoomHeight.py: Typo in Win specific height setting.
   1380 
   1381 Sun Jan  3 00:47:35 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1382 
   1383 	* AutoIndent.py: Added something like Tim Peters' backspace patch.
   1384 
   1385 	* ZoomHeight.py: Adapted to Unix (i.e., more hardcoded constants).
   1386 
   1387 Sat Jan  2 21:28:54 1999  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1388 
   1389 	* keydefs.py, idlever.py, idle.pyw, idle.bat, help.txt, extend.txt, extend.py, eventparse.py, ZoomHeight.py, WindowList.py, UndoDelegator.py, StackViewer.py, SearchEngine.py, SearchDialogBase.py, SearchDialog.py, ScrolledList.py, SearchBinding.py, ScriptBinding.py, ReplaceDialog.py, Attic/README, README.txt, PyShell.py, Attic/PopupMenu.py, OutputWindow.py, IOBinding.py, Attic/HelpWindow.py, History.py, GrepDialog.py, FileList.py, FrameViewer.py, EditorWindow.py, Debugger.py, Delegator.py, ColorDelegator.py, Bindings.py, ClassBrowser.py, AutoExpand.py, AutoIndent.py:
   1390 	Checking in IDLE 0.2.
   1391 
   1392 	Much has changed -- too much, in fact, to write down.
   1393 	The big news is that there's a standard way to write IDLE extensions;
   1394 	see extend.txt.  Some sample extensions have been provided, and
   1395 	some existing code has been converted to extensions.  Probably the
   1396 	biggest new user feature is a new search dialog with more options,
   1397 	search and replace, and even search in files (grep).
   1398 
   1399 	This is exactly as downloaded from my laptop after returning
   1400 	from the holidays -- it hasn't even been tested on Unix yet.
   1401 
   1402 Fri Dec 18 15:52:54 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1403 
   1404 	* FileList.py, ClassBrowser.py:
   1405 	Fix the class browser to work even when the file is not on sys.path.
   1406 
   1407 Tue Dec  8 20:39:36 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1408 
   1409 	* Attic/turtle.py: Moved to Python 1.5.2/Lib
   1410 
   1411 Fri Nov 27 03:19:20 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1412 
   1413 	* help.txt: Typo
   1414 
   1415 	* EditorWindow.py, FileList.py: Support underlining of menu labels
   1416 
   1417 	* Bindings.py:
   1418 	New approach, separate tables for menus (platform-independent) and key
   1419 	definitions (platform-specific), and generating accelerator strings
   1420 	automatically from the key definitions.
   1421 
   1422 Mon Nov 16 18:37:42 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1423 
   1424 	* Attic/README: Clarify portability and main program.
   1425 
   1426 	* Attic/README: Added intro for 0.1 release and append Grail notes.
   1427 
   1428 Mon Oct 26 18:49:00 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1429 
   1430 	* Attic/turtle.py: root is now a global called _root
   1431 
   1432 Sat Oct 24 16:38:38 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1433 
   1434 	* Attic/turtle.py: Raise the root window on reset().
   1435 	Different action on WM_DELETE_WINDOW is more likely to do the right thing,
   1436 	allowing us to destroy old windows.
   1437 
   1438 	* Attic/turtle.py:
   1439 	Split the goto() function in two: _goto() is the internal one,
   1440 	using Canvas coordinates, and goto() uses turtle coordinates
   1441 	and accepts variable argument lists.
   1442 
   1443 	* Attic/turtle.py: Cope with destruction of the window
   1444 
   1445 	* Attic/turtle.py: Turtle graphics
   1446 
   1447 	* Debugger.py: Use of Breakpoint class should be bdb.Breakpoint.
   1448 
   1449 Mon Oct 19 03:33:40 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1450 
   1451 	* SearchBinding.py:
   1452 	Speed up the search a bit -- don't drag a mark around...
   1453 
   1454 	* PyShell.py:
   1455 	Change our special entries from <console#N> to <pyshell#N>.
   1456 	Patch linecache.checkcache() to keep our special entries alive.
   1457 	Add popup menu to all editor windows to set a breakpoint.
   1458 
   1459 	* Debugger.py:
   1460 	Use and pass through the 'force' flag to set_dict() where appropriate.
   1461 	Default source and globals checkboxes to false.
   1462 	Don't interact in user_return().
   1463 	Add primitive set_breakpoint() method.
   1464 
   1465 	* ColorDelegator.py:
   1466 	Raise priority of 'sel' tag so its foreground (on Windows) will take
   1467 	priority over text colorization (which on Windows is almost the
   1468 	same color as the selection background).
   1469 
   1470 	Define a tag and color for breakpoints ("BREAK").
   1471 
   1472 	* Attic/PopupMenu.py: Disable "Open stack viewer" and "help" commands.
   1473 
   1474 	* StackViewer.py:
   1475 	Add optional 'force' argument (default 0) to load_dict().
   1476 	If set, redo the display even if it's the same dict.
   1477 
   1478 Fri Oct 16 21:10:12 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1479 
   1480 	* StackViewer.py: Do nothing when loading the same dict as before.
   1481 
   1482 	* PyShell.py: Details for debugger interface.
   1483 
   1484 	* Debugger.py:
   1485 	Restructured and more consistent.  Save checkboxes across instantiations.
   1486 
   1487 	* EditorWindow.py, Attic/README, Bindings.py:
   1488 	Get rid of conflicting ^X binding.  Use ^W.
   1489 
   1490 	* Debugger.py, StackViewer.py:
   1491 	Debugger can now show local and global variables.
   1492 
   1493 	* Debugger.py: Oops
   1494 
   1495 	* Debugger.py, PyShell.py: Better debugger support (show stack etc).
   1496 
   1497 	* Attic/PopupMenu.py: Follow renames in StackViewer module
   1498 
   1499 	* StackViewer.py:
   1500 	Rename classes to StackViewer (the widget) and StackBrowser (the toplevel).
   1501 
   1502 	* ScrolledList.py: Add close() method
   1503 
   1504 	* EditorWindow.py: Clarify 'Open Module' dialog text
   1505 
   1506 	* StackViewer.py: Restructured into a browser and a widget.
   1507 
   1508 Thu Oct 15 23:27:08 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1509 
   1510 	* ClassBrowser.py, ScrolledList.py:
   1511 	Generalized the scrolled list which is the base for the class and
   1512 	method browser into a separate class in its own module.
   1513 
   1514 	* Attic/test.py: Cosmetic change
   1515 
   1516 	* Debugger.py: Don't show function name if there is none
   1517 
   1518 Wed Oct 14 03:43:05 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1519 
   1520 	* Debugger.py, PyShell.py: Polish the Debugger GUI a bit.
   1521 	Closing it now also does the right thing.
   1522 
   1523 Tue Oct 13 23:51:13 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1524 
   1525 	* Debugger.py, PyShell.py, Bindings.py:
   1526 	Ad primitive debugger interface (so far it will step and show you the
   1527 	source, but it doesn't yet show the stack).
   1528 
   1529 	* Attic/README: Misc
   1530 
   1531 	* StackViewer.py: Whoops -- referenced self.top before it was set.
   1532 
   1533 	* help.txt: Added history and completion commands.
   1534 
   1535 	* help.txt: Updated
   1536 
   1537 	* FileList.py: Add class browser functionality.
   1538 
   1539 	* StackViewer.py:
   1540 	Add a close() method and bind to WM_DELETE_WINDOW protocol
   1541 
   1542 	* PyShell.py: Clear the linecache before printing a traceback
   1543 
   1544 	* Bindings.py: Added class browser binding.
   1545 
   1546 	* ClassBrowser.py: Much improved, much left to do.
   1547 
   1548 	* PyShell.py: Make the return key do what I mean more often.
   1549 
   1550 	* ClassBrowser.py:
   1551 	Adding the beginnings of a Class browser.  Incomplete, yet.
   1552 
   1553 	* EditorWindow.py, Bindings.py:
   1554 	Add new command, "Open module".  You select or type a module name,
   1555 	and it opens the source.
   1556 
   1557 Mon Oct 12 23:59:27 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1558 
   1559 	* PyShell.py: Subsume functionality from Popup menu in Debug menu.
   1560 	Other stuff so the PyShell window can be resurrected from the Windows menu.
   1561 
   1562 	* FileList.py: Get rid of PopUp menu.
   1563 	Create a simple Windows menu.  (Imperfect when Untitled windows exist.)
   1564 	Add wakeup() method: deiconify, raise, focus.
   1565 
   1566 	* EditorWindow.py: Generalize menu creation.
   1567 
   1568 	* Bindings.py: Add Debug and Help menu items.
   1569 
   1570 	* EditorWindow.py: Added a menu bar to every window.
   1571 
   1572 	* Bindings.py: Add menu configuration to the event configuration.
   1573 
   1574 	* Attic/PopupMenu.py: Pass a root to the help window.
   1575 
   1576 	* SearchBinding.py:
   1577 	Add parent argument to 'go to line number' dialog box.
   1578 
   1579 Sat Oct 10 19:15:32 1998  Guido van Rossum  <guido (a] cnri.reston.va.us>
   1580 
   1581 	* StackViewer.py:
   1582 	Add a label at the top showing (very basic) help for the stack viewer.
   1583 	Add a label at the bottom showing the exception info.
   1584 
   1585 	* Attic/test.py, Attic/idle: Add Unix main script and test program.
   1586 
   1587 	* idle.pyw, help.txt, WidgetRedirector.py, UndoDelegator.py, StackViewer.py, SearchBinding.py, Attic/README, PyShell.py, Attic/PopupMenu.py, Percolator.py, Outline.py, IOBinding.py, History.py, Attic/HelpWindow.py, FrameViewer.py, FileList.py, EditorWindow.py, Delegator.py, ColorDelegator.py, Bindings.py, AutoIndent.py, AutoExpand.py:
   1588 	Initial checking of Tk-based Python IDE.
   1589 	Features: text editor with syntax coloring and undo;
   1590 	subclassed into interactive Python shell which adds history.
   1591 
   1592