[Lxml-checkins] r47330 - lxml/trunk/src/lxml
scoder at codespeak.net
scoder at codespeak.net
Tue Oct 9 12:02:21 CEST 2007
Author: scoder
Date: Tue Oct 9 12:02:20 2007
New Revision: 47330
Modified:
lxml/trunk/src/lxml/etree.pyx
Log:
keep prefix counter a C integer, change formatting string instead
Modified: lxml/trunk/src/lxml/etree.pyx
==============================================================================
--- lxml/trunk/src/lxml/etree.pyx (original)
+++ lxml/trunk/src/lxml/etree.pyx Tue Oct 9 12:02:20 2007
@@ -229,7 +229,8 @@
When instances of this class are garbage collected, the libxml
document is cleaned up.
"""
- cdef object _ns_counter
+ cdef unsigned int _ns_counter
+ cdef object _prefix_format
cdef xmlDoc* _c_doc
cdef _BaseParser _parser
@@ -295,8 +296,12 @@
return self._c_doc.URL
cdef buildNewPrefix(self):
- ns = "ns%d" % self._ns_counter
+ ns = python.PyString_FromFormat(
+ _cstr(self._prefix_format), self._ns_counter)
self._ns_counter = self._ns_counter + 1
+ if self._ns_counter == 0:
+ # overflow!
+ self._prefix_format = self._prefix_format + "A"
return ns
cdef xmlNs* _findOrBuildNodeNs(self, xmlNode* c_node,
@@ -374,7 +379,8 @@
cdef _Document result
result = NEW_DOCUMENT(_Document)
result._c_doc = c_doc
- result._ns_counter = 0L
+ result._ns_counter = 0
+ result._prefix_format = "ns%lu"
if parser is None:
parser = __GLOBAL_PARSER_CONTEXT.getDefaultParser()
result._parser = parser
More information about the lxml-checkins
mailing list