Added post_mortem() and pm() interfaces to pdb and wdb.
Added colorsys.py (color system conversions).
SV.py: new version for new svideo.h (Sjoerd).
DEVICE.py: added VIDEO event type.
diff --git a/Lib/irix5/DEVICE.py b/Lib/irix5/DEVICE.py
index 2c20485..7ace8cb 100755
--- a/Lib/irix5/DEVICE.py
+++ b/Lib/irix5/DEVICE.py
@@ -385,6 +385,7 @@
 DEPTHCHANGE = 543
 WINSHUT = 546
 DRAWOVERLAY = 547
+VIDEO = 548
 MENUBUTTON = RIGHTMOUSE
 WINCLOSE = 537
 KEYBDFNAMES = 544
diff --git a/Lib/lib-stdwin/wdb.py b/Lib/lib-stdwin/wdb.py
index b3d6b73..c499296 100644
--- a/Lib/lib-stdwin/wdb.py
+++ b/Lib/lib-stdwin/wdb.py
@@ -2,8 +2,6 @@
 
 # XXX To do:
 # - don't fall out of bottom frame
-# - is the /tmp file hack really needed?
-# - also use it for post-mortem debugging
 
 
 import stdwin
@@ -273,6 +271,8 @@
 			d.close()
 
 
+# Simplified interface
+
 def run(statement):
 	x = Wdb().init()
 	try: x.run(statement)
@@ -288,6 +288,21 @@
 	try: apply(Pdb().init().runcall, args)
 	finally: x.close()
 
+
+# Post-Mortem interface
+
+def post_mortem(traceback):
+	p = Pdb().init()
+	p.reset()
+	p.interaction(None, traceback)
+
+def pm():
+	import sys
+	post_mortem(sys.last_traceback)
+
+
+# Main program for testing
+
 TESTCMD = 'import x; x.main()'
 
 def test():
diff --git a/Lib/pdb.doc b/Lib/pdb.doc
index 0ae4c0e..c92b572 100644
--- a/Lib/pdb.doc
+++ b/Lib/pdb.doc
@@ -9,6 +9,15 @@
 The debugger's prompt is '(Pdb) '.  This will stop in the first
 function call in <a statement>.
 
+Alternatively, if a statement terminated with an unhandled exception,
+you can use pdb's post-mortem facility to inspect the contents of the
+traceback:
+
+	>>> <a statement>
+	<exception traceback>
+	>>> import pdb
+	>>> pdb.pm()
+
 The commands recognized by the debugger are listed in the next
 section.  Most can be abbreviated as indicated; e.g., h(elp) means
 that 'help' can be typed as 'h' or 'help' (but not as 'he' or 'hel',
diff --git a/Lib/pdb.py b/Lib/pdb.py
index f564f64..94dcd79 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -248,6 +248,8 @@
 		print self.format_stack_entry(frame_lineno)
 
 
+# Simplified interface
+
 def run(statement):
 	Pdb().init().run(statement)
 
@@ -257,6 +259,22 @@
 def runcall(*args):
 	apply(Pdb().init().runcall, args)
 
+
+# Post-Mortem interface
+
+def post_mortem(t):
+	p = Pdb().init()
+	p.reset()
+	while t.tb_next <> None: t = t.tb_next
+	p.interaction(t.tb_frame, t)
+
+def pm():
+	import sys
+	post_mortem(sys.last_traceback)
+
+
+# Main program for testing
+
 TESTCMD = 'import x; x.main()'
 
 def test():
diff --git a/Lib/plat-irix5/DEVICE.py b/Lib/plat-irix5/DEVICE.py
index 2c20485..7ace8cb 100755
--- a/Lib/plat-irix5/DEVICE.py
+++ b/Lib/plat-irix5/DEVICE.py
@@ -385,6 +385,7 @@
 DEPTHCHANGE = 543
 WINSHUT = 546
 DRAWOVERLAY = 547
+VIDEO = 548
 MENUBUTTON = RIGHTMOUSE
 WINCLOSE = 537
 KEYBDFNAMES = 544
diff --git a/Lib/stdwin/wdb.py b/Lib/stdwin/wdb.py
index b3d6b73..c499296 100755
--- a/Lib/stdwin/wdb.py
+++ b/Lib/stdwin/wdb.py
@@ -2,8 +2,6 @@
 
 # XXX To do:
 # - don't fall out of bottom frame
-# - is the /tmp file hack really needed?
-# - also use it for post-mortem debugging
 
 
 import stdwin
@@ -273,6 +271,8 @@
 			d.close()
 
 
+# Simplified interface
+
 def run(statement):
 	x = Wdb().init()
 	try: x.run(statement)
@@ -288,6 +288,21 @@
 	try: apply(Pdb().init().runcall, args)
 	finally: x.close()
 
+
+# Post-Mortem interface
+
+def post_mortem(traceback):
+	p = Pdb().init()
+	p.reset()
+	p.interaction(None, traceback)
+
+def pm():
+	import sys
+	post_mortem(sys.last_traceback)
+
+
+# Main program for testing
+
 TESTCMD = 'import x; x.main()'
 
 def test():