Remove dynamic dependency download during build by checking in libuv source and GYP build tooling. Update .gitignore to exclude intermediate build artifacts from the vendored deps directory, adjust Makefile to remove the now-unnecessary cleanall target and deps folder cleanup, and add the full libuv project tree including its own .gitignore, .mailmap, AUTHORS, CONTRIBUTING.md, ChangeLog, and LICENSE files.
70 lines
2.1 KiB
Python
70 lines
2.1 KiB
Python
# 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("&", "&").replace("<", "<")
|
|
data = data.replace("\"", """).replace(">", ">")
|
|
if is_attrib:
|
|
data = data.replace(
|
|
"\r", "
").replace(
|
|
"\n", "
").replace(
|
|
"\t", "	")
|
|
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()
|