Yves Bastide wrote:
> Hi,
>
> GenericSetup is cursed with Zope2's strings-are-str attitude; thus e.g.
> a type with a non-ASCII description is unexportable.
>
> Since CPS's current encoding is iso8859-15, the dirty bug attached
> exports iso8859-15 xml files: the DOM tree is (hopefully) built in
> Unicode, then encoded in Latin 9.
>
> Best regards,
>
> yves
>
>
> ------------------------------------------------------------------------
>
> Index: GenericSetup/utils.py
> ===================================================================
> --- GenericSetup/utils.py (revision 45483)
> +++ GenericSetup/utils.py (working copy)
> @@ -339,6 +339,11 @@
> """minidom element with 'pretty' XML output.
> """
>
> + def setAttribute(self, attname, value):
> + if isinstance(value, str):
> + value = value.decode('iso8859-15')
> + return Element.setAttribute(self, attname, value)
> +
> def writexml(self, writer, indent="", addindent="", newl=""):
> # indent = current indentation
> # addindent = indentation to add to higher levels
> @@ -400,6 +405,11 @@
> e = _Element(qualifiedName, namespaceURI, prefix)
> e.ownerDocument = self
> return e
> +
> + def createTextNode(self, data):
> + if isinstance(data, str):
> + data = data.decode('iso8859-15')
> + return Document.createTextNode(self, data)
>
> def writexml(self, writer, indent="", addindent="", newl="",
> encoding = None):
> @@ -496,7 +506,7 @@
> """Export the object as a file body.
> """
> self._doc.appendChild(self._exportNode())
> - return self._doc.toprettyxml(' ')
> + return self._doc.toprettyxml(' ', encoding='iso8859-15')
>
> def _importBody(self, body):
> """Import the object from the file body.
> @@ -623,8 +633,10 @@
> else:
> if prop_map.get('type') == 'boolean':
> prop = str(bool(prop))
> + elif isinstance(prop, str):
> + prop = prop.decode('iso8859-15')
> elif not isinstance(prop, basestring):
> - prop = str(prop)
> + prop = unicode(prop)
> child = self._doc.createTextNode(prop)
> node.appendChild(child)
>
> Could you attach the patch over this : http://svn.nuxeo.org/trac/pub/ticket/1529 J. -- Julien Anguenot | Nuxeo R&D (Paris, France) Open Source ECM - www.nuxeo.com CPS Platform - http://www.cps-project.org Mobile: +33 (0) 6 72 57 57 66
signature.asc
Description: OpenPGP digital signature
_______________________________________________ cps-devel mailing list http://lists.nuxeo.com/mailman/listinfo/cps-devel
