When adding a name to the table of macros and environments, make sure it
is not already present. If it is, raise an exception, since that should not
happen in a well-defined conversion.
diff --git a/Doc/tools/sgmlconv/latex2esis.py b/Doc/tools/sgmlconv/latex2esis.py
index 38b6e49..3ccd7e7 100755
--- a/Doc/tools/sgmlconv/latex2esis.py
+++ b/Doc/tools/sgmlconv/latex2esis.py
@@ -487,7 +487,10 @@
if attrs.has_key("outputname"):
self.__current.outputname = attrs.get("outputname")
def end_macro(self):
- self.__table[self.__current.name] = self.__current
+ name = self.__current.name
+ if self.__table.has_key(name):
+ raise ValueError("name %s already in use" % `name`)
+ self.__table[name] = self.__current
self.__current = None
def start_attribute(self, attrs):