apparently id() sometimes generate negative values and %X outputs -XXXX
* python/generator.py python/libxml.py: apparently id() sometimes
generate negative values and %X outputs -XXXX :-(
Daniel
diff --git a/python/generator.py b/python/generator.py
index f116f8a..a38a23c 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -1055,7 +1055,7 @@
classes_ancestor[classname] == "xmlNode":
classes.write(" def __repr__(self):\n")
format = "<%s (%%s) object at 0x%%x>" % (classname)
- classes.write(" return \"%s\" %% (self.name, long(id (self)))\n\n" % (
+ classes.write(" return \"%s\" %% (self.name, long(pos_id (self)))\n\n" % (
format))
else:
txt.write("Class %s()\n" % (classname))
diff --git a/python/libxml.py b/python/libxml.py
index 4c9fe92..988a166 100644
--- a/python/libxml.py
+++ b/python/libxml.py
@@ -1,10 +1,20 @@
import libxml2mod
import types
+import sys
# The root of all libxml2 errors.
class libxmlError(Exception): pass
#
+# id() is sometimes negative ...
+#
+def pos_id(o):
+ i = id(o)
+ if (i < 0):
+ return (sys.maxint - i)
+ return i
+
+#
# Errors raised by the wrappers when some tree handling failed.
#
class treeError(libxmlError):