| Index: third_party/twisted_8_1/twisted/python/win32.py | 
| diff --git a/third_party/twisted_8_1/twisted/python/win32.py b/third_party/twisted_8_1/twisted/python/win32.py | 
| deleted file mode 100644 | 
| index c409f0dfb297bc2706d866267462f7e799a08c22..0000000000000000000000000000000000000000 | 
| --- a/third_party/twisted_8_1/twisted/python/win32.py | 
| +++ /dev/null | 
| @@ -1,160 +0,0 @@ | 
| -# Copyright (c) 2001-2007 Twisted Matrix Laboratories. | 
| -# See LICENSE for details. | 
| - | 
| -""" | 
| -Win32 utilities. | 
| - | 
| -See also twisted.python.shortcut. | 
| -""" | 
| - | 
| -import re | 
| -import exceptions | 
| -import os | 
| - | 
| -try: | 
| -    import win32api | 
| -    import win32con | 
| -except ImportError: | 
| -    pass | 
| - | 
| -from twisted.python.runtime import platform | 
| - | 
| -# http://msdn.microsoft.com/library/default.asp?url=/library/en-us/debug/base/system_error_codes.asp | 
| -ERROR_FILE_NOT_FOUND = 2 | 
| -ERROR_PATH_NOT_FOUND = 3 | 
| -ERROR_INVALID_NAME = 123 | 
| -ERROR_DIRECTORY = 267 | 
| - | 
| -def _determineWindowsError(): | 
| -    """ | 
| -    Determine which WindowsError name to export. | 
| -    """ | 
| -    return getattr(exceptions, 'WindowsError', FakeWindowsError) | 
| - | 
| -class FakeWindowsError(OSError): | 
| -    """ | 
| -    Stand-in for sometimes-builtin exception on platforms for which it | 
| -    is missing. | 
| -    """ | 
| - | 
| -WindowsError = _determineWindowsError() | 
| - | 
| -# XXX fix this to use python's builtin _winreg? | 
| - | 
| -def getProgramsMenuPath(): | 
| -    """Get the path to the Programs menu. | 
| - | 
| -    Probably will break on non-US Windows. | 
| - | 
| -    @returns: the filesystem location of the common Start Menu->Programs. | 
| -    """ | 
| -    if not platform.isWinNT(): | 
| -        return "C:\\Windows\\Start Menu\\Programs" | 
| -    keyname = 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders' | 
| -    hShellFolders = win32api.RegOpenKeyEx(win32con.HKEY_LOCAL_MACHINE, | 
| -                                          keyname, 0, win32con.KEY_READ) | 
| -    return win32api.RegQueryValueEx(hShellFolders, 'Common Programs')[0] | 
| - | 
| - | 
| -def getProgramFilesPath(): | 
| -    """Get the path to the Program Files folder.""" | 
| -    keyname = 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion' | 
| -    currentV = win32api.RegOpenKeyEx(win32con.HKEY_LOCAL_MACHINE, | 
| -                                     keyname, 0, win32con.KEY_READ) | 
| -    return win32api.RegQueryValueEx(currentV, 'ProgramFilesDir')[0] | 
| - | 
| -_cmdLineQuoteRe = re.compile(r'(\\*)"') | 
| -_cmdLineQuoteRe2 = re.compile(r'(\\+)\Z') | 
| -def cmdLineQuote(s): | 
| -    """ | 
| -    Internal method for quoting a single command-line argument. | 
| - | 
| -    @param s: an unquoted string that you want to quote so that something that | 
| -    does cmd.exe-style unquoting will interpret it as a single argument, even | 
| -    if it contains spaces. | 
| - | 
| -    @return: a quoted string. | 
| -    """ | 
| -    quote = ((" " in s) or ("\t" in s) or ('"' in s)) and '"' or '' | 
| -    return quote + _cmdLineQuoteRe2.sub(r"\1\1", _cmdLineQuoteRe.sub(r'\1\1\\"', s)) + quote | 
| - | 
| -def quoteArguments(arguments): | 
| -    """ | 
| -    Quote an iterable of command-line arguments for passing to CreateProcess or | 
| -    a similar API.  This allows the list passed to C{reactor.spawnProcess} to | 
| -    match the child process's C{sys.argv} properly. | 
| - | 
| -    @param arglist: an iterable of C{str}, each unquoted. | 
| - | 
| -    @return: a single string, with the given sequence quoted as necessary. | 
| -    """ | 
| -    return ' '.join([cmdLineQuote(a) for a in arguments]) | 
| - | 
| - | 
| -class _ErrorFormatter(object): | 
| -    """ | 
| -    Formatter for Windows error messages. | 
| - | 
| -    @ivar winError: A callable which takes one integer error number argument | 
| -        and returns an L{exceptions.WindowsError} instance for that error (like | 
| -        L{ctypes.WinError}). | 
| - | 
| -    @ivar formatMessage: A callable which takes one integer error number | 
| -        argument and returns a C{str} giving the message for that error (like | 
| -        L{win32api.FormatMessage}). | 
| - | 
| -    @ivar errorTab: A mapping from integer error numbers to C{str} messages | 
| -        which correspond to those erorrs (like L{socket.errorTab}). | 
| -    """ | 
| -    def __init__(self, WinError, FormatMessage, errorTab): | 
| -        self.winError = WinError | 
| -        self.formatMessage = FormatMessage | 
| -        self.errorTab = errorTab | 
| - | 
| -    def fromEnvironment(cls): | 
| -        """ | 
| -        Get as many of the platform-specific error translation objects as | 
| -        possible and return an instance of C{cls} created with them. | 
| -        """ | 
| -        try: | 
| -            from ctypes import WinError | 
| -        except ImportError: | 
| -            WinError = None | 
| -        try: | 
| -            from win32api import FormatMessage | 
| -        except ImportError: | 
| -            FormatMessage = None | 
| -        try: | 
| -            from socket import errorTab | 
| -        except ImportError: | 
| -            errorTab = None | 
| -        return cls(WinError, FormatMessage, errorTab) | 
| -    fromEnvironment = classmethod(fromEnvironment) | 
| - | 
| - | 
| -    def formatError(self, errorcode): | 
| -        """ | 
| -        Returns the string associated with a Windows error message, such as the | 
| -        ones found in socket.error. | 
| - | 
| -        Attempts direct lookup against the win32 API via ctypes and then | 
| -        pywin32 if available), then in the error table in the socket module, | 
| -        then finally defaulting to C{os.strerror}. | 
| - | 
| -        @param errorcode: the Windows error code | 
| -        @type errorcode: C{int} | 
| - | 
| -        @return: The error message string | 
| -        @rtype: C{str} | 
| -        """ | 
| -        if self.winError is not None: | 
| -            return self.winError(errorcode)[1] | 
| -        if self.formatMessage is not None: | 
| -            return self.formatMessage(errorcode) | 
| -        if self.errorTab is not None: | 
| -            result = self.errorTab.get(errorcode) | 
| -            if result is not None: | 
| -                return result | 
| -        return os.strerror(errorcode) | 
| - | 
| -formatError = _ErrorFormatter.fromEnvironment().formatError | 
|  |