urllib.py: '+' is not always safe (even though the RFC says so :-( )
whrandom.py: throw away top bits of time to avoid overflow on Mac
(where times can be negative)
* Lib/macpath.py: don't return trailing colon for dirname()
(XXX won't do for volume names -- but otherwise glob(':*:*.py')
loops forever)
* Lib/traceback.py: print SyntaxError correctly
* Lib/stat.py: moved to posixstat.py; added macstat.py which has
the constants for the Mac; and created new stat.py which includes
the right one
* Lib/urllib.py: fix caching bug (by disabling the cache)
proper argument
* Lib/{bdb,cmd,pdb}.py: Mods by Rickard Westman: No longer barfs
on lambda:s (outputs "<lambda>" as the function name); "a(rgs)" in
pdb now works; help messages added to pdb (lifted from pdb.doc).
Also, "h pdb" calls pdb.help(). cmd.do_help() displays topics on
a nicer way (I think). Also, topics for which there is a help_
method, but no do_method (like "pdb" above) are displayed in a
special way. My own mod: fix break on function to also support
methods.
* Setup.in: moreButtons Tk extension support (again).
* mklibapp: $1 is now the path to the Tk extension source
directory. The default is /usr/local/src/tcl.
* kill.py: Don't use the exec Tcl command.
* Tkinter.py
(Misc.bind_all): Bug fix; extra graves.
(Misc.tk_strictMotif): Return the value.
(mainloop, getint, getdouble, getboolean): New functions.
(_cnfmerge): Flatten cnfs.
Wed Jun 29 22:01:17 1994 Steen Lumholt (lumholt@login.dkuug.dk)
* Tkinter.py:
(Tk.destroy): master is always None; so don't del. Found by
Tommy Burnette, solution from Guido van Rossum.
(Misc.selection_get): Missing return. Found by Richard Neitzel.
(Misc._options, Widget.config, Canvas._create): If cnf is a tuple
or list then merge the contents. Suggested by Matthew Conway.
* README: Doc fix.
* Dialog.py: tk_dialog wrapper widget.
* Tkinter.py: (Widget) Code moved from __init__ to _setup.
Sat Jun 25 00:27:24 1994 Steen Lumholt (lumholt@login.dkuug.dk)
* Tkinter.py (Misc): selection_own and selection_own_get methods.
(Misc.winfo_toplevel): Return widget.
* kill.py: New demo.
* Tkinter.py: tk_menuBar method moved from Menu class to
Misc class.
(Scrollbar.get): Bug fix; self._getints not self.tk.getints.
Fri Jun 24 17:42:16 1994 Steen Lumholt (lumholt@login.dkuug.dk)
* Tkinter.py
(Variable, StringVar, IntVar, BooleanVar): New classes.
* mklibapp: New shell script.
* Setup.in: moreButtons Tk extension support.
* tkintermodule.c (Tkapp_New): Remove #ifdef WITH_APPINIT.
* appinit.c (Tcl_AppInit): New file and function.
* Tkinter.py:
(Button): Dummy args in tk_* methods.
(Studbutton, Tributton): New widget by <tnb2d@cs.virginia.edu>;
morebuttons extension.
Thu Jun 23 22:22:43 1994 Steen Lumholt (lumholt@login.dkuug.dk)
* tkintermodule.c (FileHandler): Make arg a tuple; bug found
by <tnb2d@cs.virginia.edu>. Call the Python file handler
function with (file, mask) argument. Fix a few of my refcnt bugs.
multifile.py: added readlines() and read() methods
mimetools.py: mimetools.py: added functions to encode/decode standard MIME
Content-transfer-encoding types (as well as uuencode)
rfc822.py: Accept lines ending in CR LF as well
(Misc.after): arrange to call deletecommand after it is called.
(Canvas.itemconfig): generalized to support all forms.
(Canvas.find): returns a list of integers instead of strings.
* Tkinter.py (Canvas._create): call _flatten earlier.
Renamed tkerror to _tkerror, default_root to _default_root.
(_substitute, _subst_prefix): move back into class Misc; added
widget Event attribute.
Added functions that return widgets or widget lists:
winfo_children; focus_get; grab_current.
(Pack.slaves, Place.slaves): return Widget objects instead of
pathnames.
Renamed __del__() to destroy() (because of circular refs, __del__
won't ever be called).
Added some names with explicit _set: focus_set, focus_default_set,
grab_set.
Added focus_default_none.
(Misc._getints): use tk.splitlist() instead of tk.split(), return
None if string empty.
constructors. There is no backward compatibility. Not everything has
been tested.
* aiff.{py,doc}: deleted in favor of aifc.py (which contains its docs as
comments)
variables can still be seen by the debugger
* ftplib.py (retrlines): args should be *args.
* ChangeLog: entries for Sjoerd's addition sunau.py and changes to aiff.py
* test_md5.py: test program for built-in md5 module
use audioop module as backup for cl module when reading or
writing u-law compressed files.
sunau.py: interface with the same methods as aifc for Sun and NeXT
audio files
reduce)
* ftplib.py: added default callback for retrlines; added dir() method
* ftplib.py: don't return self in self.connect(); added hack so that if
'CDUP' is not understood, 'CWD ..' is tried.
* ftplib.py: second method called init() should have been called
connect(); if __init__ sees more than one argument, it will also try to
login().
* test_grammar.py, testall.out: added test for funny things in string literals
* token.py, symbol.py: definitions used with built-in parser module.
* tokenize.py: added double-quote recognition
negative start indices starting from the right.
* ftplib.py: debug() -> set_debuglevel(); change demo to use __init__().
* os.py: added execl, execlp, and execvp.
* lambda.py: removed (now that we have built-in map, reduce, bagof, lambda)
* test_b{1,2}.py, testall.out: added tests for bagof, lambda, map, reduce
* commands.py: use os, not posix
* test_grammar.py: make it easy to disable non-portable int overflow tests
* dis.py: don't abuse range()
* builtin.py: b/w compat for builtin -> __builtin__ name change
* string.py: added atof() and atol() and corresponding exceptions
* test_types.py: added test for list sort with user comparison function
local or global variables list and you get a window with the instance
variable of the class instance. This list is of course automatically
kept up to date.
* imghdr.py: added jpeg recognition
* torgb.py: added jpeg conversion
* tzparse.py: use functions from time instead of calendar
* whatsound.py: add /ufs/guido/biin/sgi to $PATH when calling 'whatsound'
* calendar.py: remove stuff now built in time; some cleanup and
generalization in the calendar printing
* cmd.py: use __init__.
* tzparse.py: This module is no longer necessary -- use builtin time instead!
* sndhdr.py: renamed to whatsound.py; use new aifc module for AIFF/AIFC
* ftplib.py: added close() (closes without sending QUIT command)
* aifc.py: documented close()
* Several modules: change "class C(): ..." to "class C: ...".
* flp.py: support for frozen forms.
* Added string.find() which is like index but returns -1 if not found
* Added whatis command to pdb.py
* new module GET.py (GL definitions from <gl/get.h>)
* rect.py: is_empty takes a rect as argument, not two points.
* Added tests for builtin round() [XXX not yet complete!]
* Fixed calendar.py, mimetools.py, whrandom.py to cope with time.time()
returning a floating point number. (And fix old bug in calendar)
* Add recursion level to mainloop.mainloop(), to make it reentrant.
cdplayer.py: It is now also possible to give the CD's TOC as argument
to init(). The TOC is a string consisting of 2 digits giving the
number of tracks and then for each track the length of the track as
number of minutes and number of seconds (2 digits each).
cddb.py: Interface to the .cddb directory. Usage is the same as for
cdplayer.py.
* Many modules: fixes for new, stricter, argument passing rules
(most changes were automatic ones -- not all of this is tested!).
* gwin.py: now uses mainloop.py for its main loop and window admin.
* mainloop.py: always call dispatch() with event as a tuple!
* Fix bug in pdb's 'clear' command -- don't set the bpt but clear it!
embryonic facility for pseudo-modal dialogs.
* stdwinevents.py: added modifier masks for key/mouse events
* renamed exceptions in nntplib.py
* Changed string.join() to call string.joinfields() to profit of
strop.joinfields()
* changed eval() into getattr() in cmd.py
* added dirname(), basename() and (dummy) normath() to macpath.py
* renamed nntp.py to nntplib.py
* Made string.index() compatible with strop.index()
* Make string.atoi('') raise string.atoi_error rather than ValueError
* Added dirname() and normpath() to posixpath.
Added runcall(func, *args) interfaces to profile.py, bdb.py, pdb.py, wdb.py
Added new module bisect.py and used it in sched.py.
Mostly cosmetic changes to profile.py (changed output format).