404

[ Avaa Bypassed ]




Upload:

Command:

botdev@13.59.225.66: ~ $
# Copyright (c) 2011 Google Inc. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

"""Applies a fix to CR LF TAB handling in xml.dom.

Fixes this: http://code.google.com/p/chromium/issues/detail?id=76293
Working around this: http://bugs.python.org/issue5752
TODO(bradnelson): Consider dropping this when we drop XP support.
"""


import xml.dom.minidom


def _Replacement_write_data(writer, data, is_attrib=False):
  """Writes datachars to writer."""
  data = data.replace("&", "&amp;").replace("<", "&lt;")
  data = data.replace("\"", "&quot;").replace(">", "&gt;")
  if is_attrib:
    data = data.replace(
        "\r", "&#xD;").replace(
        "\n", "&#xA;").replace(
        "\t", "&#x9;")
  writer.write(data)


def _Replacement_writexml(self, writer, indent="", addindent="", newl=""):
  # indent = current indentation
  # addindent = indentation to add to higher levels
  # newl = newline string
  writer.write(indent+"<" + self.tagName)

  attrs = self._get_attributes()
  a_names = attrs.keys()
  a_names.sort()

  for a_name in a_names:
    writer.write(" %s=\"" % a_name)
    _Replacement_write_data(writer, attrs[a_name].value, is_attrib=True)
    writer.write("\"")
  if self.childNodes:
    writer.write(">%s" % newl)
    for node in self.childNodes:
      node.writexml(writer, indent + addindent, addindent, newl)
    writer.write("%s</%s>%s" % (indent, self.tagName, newl))
  else:
    writer.write("/>%s" % newl)


class XmlFix(object):
  """Object to manage temporary patching of xml.dom.minidom."""

  def __init__(self):
    # Preserve current xml.dom.minidom functions.
    self.write_data = xml.dom.minidom._write_data
    self.writexml = xml.dom.minidom.Element.writexml
    # Inject replacement versions of a function and a method.
    xml.dom.minidom._write_data = _Replacement_write_data
    xml.dom.minidom.Element.writexml = _Replacement_writexml

  def Cleanup(self):
    if self.write_data:
      xml.dom.minidom._write_data = self.write_data
      xml.dom.minidom.Element.writexml = self.writexml
      self.write_data = None

  def __del__(self):
    self.Cleanup()

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
generator Folder 0755
MSVSNew.py File 11.66 KB 0644
MSVSProject.py File 6.24 KB 0644
MSVSSettings.py File 44.17 KB 0644
MSVSSettings_test.py File 64.56 KB 0755
MSVSToolFile.py File 1.76 KB 0644
MSVSUserFile.py File 4.97 KB 0644
MSVSUtil.py File 9.31 KB 0644
MSVSUtil.pyc File 7.55 KB 0644
MSVSVersion.py File 17.02 KB 0644
MSVSVersion.pyc File 14.28 KB 0644
__init__.py File 21.87 KB 0755
__init__.pyc File 16.22 KB 0644
common.py File 20.58 KB 0644
common.pyc File 19.59 KB 0644
common_test.py File 1.92 KB 0755
easy_xml.py File 4.87 KB 0644
easy_xml_test.py File 3.25 KB 0755
flock_tool.py File 1.71 KB 0755
input.py File 113.65 KB 0644
input.pyc File 62.62 KB 0644
input_test.py File 3.11 KB 0755
mac_tool.py File 22.89 KB 0755
msvs_emulation.py File 47.1 KB 0644
msvs_emulation.pyc File 47.84 KB 0644
ninja_syntax.py File 5.41 KB 0644
ninja_syntax.pyc File 6.47 KB 0644
simple_copy.py File 1.3 KB 0644
simple_copy.pyc File 2.23 KB 0644
win_tool.py File 12.72 KB 0755
xcode_emulation.py File 64.85 KB 0644
xcode_emulation.pyc File 61.22 KB 0644
xcode_ninja.py File 10.32 KB 0644
xcode_ninja.pyc File 7.43 KB 0644
xcodeproj_file.py File 117.66 KB 0644
xcodeproj_file.pyc File 93.06 KB 0644
xml_fix.py File 2.12 KB 0644