added support for deleting tables: del f[tag]


git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@201 4cde692c-a291-49d1-8350-778aa11640f8
diff --git a/Lib/fontTools/ttLib/__init__.py b/Lib/fontTools/ttLib/__init__.py
index 3f2cc07..644528a 100644
--- a/Lib/fontTools/ttLib/__init__.py
+++ b/Lib/fontTools/ttLib/__init__.py
@@ -42,7 +42,7 @@
 """
 
 #
-# $Id: __init__.py,v 1.19 2002-05-02 15:23:25 jvr Exp $
+# $Id: __init__.py,v 1.20 2002-05-04 22:04:02 jvr Exp $
 #
 
 import os
@@ -256,7 +256,6 @@
 		return self.tables.has_key(tag)
 	
 	def has_key(self, tag):
-		"""Pretend we're a dictionary."""
 		if self.isLoaded(tag):
 			return 1
 		elif self.reader and self.reader.has_key(tag):
@@ -265,7 +264,6 @@
 			return 0
 	
 	def keys(self):
-		"""Pretend we're a dictionary."""
 		keys = self.tables.keys()
 		if self.reader:
 			for key in self.reader.keys():
@@ -275,11 +273,9 @@
 		return keys
 	
 	def __len__(self):
-		"""Pretend we're a dictionary."""
 		return len(self.keys())
 	
 	def __getitem__(self, tag):
-		"""Pretend we're a dictionary."""
 		try:
 			return self.tables[tag]
 		except KeyError:
@@ -310,12 +306,15 @@
 				raise KeyError, "'%s' table not found" % tag
 	
 	def __setitem__(self, tag, table):
-		"""Pretend we're a dictionary."""
 		self.tables[tag] = table
 	
 	def __delitem__(self, tag):
-		"""Pretend we're a dictionary."""
-		del self.tables[tag]
+		if not self.has_key(tag):
+			raise KeyError, "'%s' table not found" % tag
+		if self.tables.has_key(tag):
+			del self.tables[tag]
+		if self.reader and self.reader.has_key(tag):
+			del self.reader[tag]
 	
 	def setGlyphOrder(self, glyphOrder):
 		self.glyphOrder = glyphOrder
diff --git a/Lib/fontTools/ttLib/sfnt.py b/Lib/fontTools/ttLib/sfnt.py
index da3f37e..8e112db 100644
--- a/Lib/fontTools/ttLib/sfnt.py
+++ b/Lib/fontTools/ttLib/sfnt.py
@@ -60,6 +60,9 @@
 				print "bad checksum for '%s' table" % tag
 		return data
 	
+	def __delitem__(self, tag):
+		del self.tables[tag]
+	
 	def close(self):
 		self.file.close()