OLD | NEW |
1 # Copyright (c) 2011 Google Inc. All rights reserved. | 1 # Copyright (c) 2011 Google Inc. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Applies a fix to CR LF TAB handling in xml.dom. | 5 """Applies a fix to CR LF TAB handling in xml.dom. |
6 | 6 |
7 Fixes this: http://code.google.com/p/chromium/issues/detail?id=76293 | 7 Fixes this: http://code.google.com/p/chromium/issues/detail?id=76293 |
8 Working around this: http://bugs.python.org/issue5752 | 8 Working around this: http://bugs.python.org/issue5752 |
9 TODO(bradnelson): Consider dropping this when we drop XP support. | 9 TODO(bradnelson): Consider dropping this when we drop XP support. |
10 """ | 10 """ |
(...skipping 14 matching lines...) Expand all Loading... |
25 writer.write(data) | 25 writer.write(data) |
26 | 26 |
27 | 27 |
28 def _Replacement_writexml(self, writer, indent="", addindent="", newl=""): | 28 def _Replacement_writexml(self, writer, indent="", addindent="", newl=""): |
29 # indent = current indentation | 29 # indent = current indentation |
30 # addindent = indentation to add to higher levels | 30 # addindent = indentation to add to higher levels |
31 # newl = newline string | 31 # newl = newline string |
32 writer.write(indent+"<" + self.tagName) | 32 writer.write(indent+"<" + self.tagName) |
33 | 33 |
34 attrs = self._get_attributes() | 34 attrs = self._get_attributes() |
35 a_names = attrs.keys() | 35 a_names = sorted(attrs.keys()) |
36 a_names.sort() | |
37 | 36 |
38 for a_name in a_names: | 37 for a_name in a_names: |
39 writer.write(" %s=\"" % a_name) | 38 writer.write(" %s=\"" % a_name) |
40 _Replacement_write_data(writer, attrs[a_name].value, is_attrib=True) | 39 _Replacement_write_data(writer, attrs[a_name].value, is_attrib=True) |
41 writer.write("\"") | 40 writer.write("\"") |
42 if self.childNodes: | 41 if self.childNodes: |
43 writer.write(">%s" % newl) | 42 writer.write(">%s" % newl) |
44 for node in self.childNodes: | 43 for node in self.childNodes: |
45 node.writexml(writer, indent + addindent, addindent, newl) | 44 node.writexml(writer, indent + addindent, addindent, newl) |
46 writer.write("%s</%s>%s" % (indent, self.tagName, newl)) | 45 writer.write("%s</%s>%s" % (indent, self.tagName, newl)) |
(...skipping 13 matching lines...) Expand all Loading... |
60 xml.dom.minidom.Element.writexml = _Replacement_writexml | 59 xml.dom.minidom.Element.writexml = _Replacement_writexml |
61 | 60 |
62 def Cleanup(self): | 61 def Cleanup(self): |
63 if self.write_data: | 62 if self.write_data: |
64 xml.dom.minidom._write_data = self.write_data | 63 xml.dom.minidom._write_data = self.write_data |
65 xml.dom.minidom.Element.writexml = self.writexml | 64 xml.dom.minidom.Element.writexml = self.writexml |
66 self.write_data = None | 65 self.write_data = None |
67 | 66 |
68 def __del__(self): | 67 def __del__(self): |
69 self.Cleanup() | 68 self.Cleanup() |
OLD | NEW |