From: Saleem Abdulrasool Date: Fri, 5 Apr 2019 18:00:49 +0000 (+0000) Subject: lit: make rm python 3 friendly (NFC) X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5e9b0f4622069dc9e2c03c23874a6a3f1af9e5ee;p=llvm lit: make rm python 3 friendly (NFC) Add some alterations for python 3 compatibility. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357789 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/lit/lit/TestRunner.py b/utils/lit/lit/TestRunner.py index 8a1842f147a..07b0021385b 100644 --- a/utils/lit/lit/TestRunner.py +++ b/utils/lit/lit/TestRunner.py @@ -617,10 +617,10 @@ def executeBuiltinRm(cmd, cmd_shenv): # NOTE: use ctypes to access `SHFileOperationsW` on Windows to # use the NT style path to get access to long file paths which # cannot be removed otherwise. - from ctypes.wintypes import BOOL, HWND, LPCWSTR, POINTER, UINT, WORD - from ctypes import c_void_p, byref + from ctypes.wintypes import BOOL, HWND, LPCWSTR, UINT, WORD + from ctypes import addressof, byref, c_void_p, create_unicode_buffer from ctypes import Structure - from ctypes import windll, WinError + from ctypes import windll, WinError, POINTER class SHFILEOPSTRUCTW(Structure): _fields_ = [ @@ -634,7 +634,7 @@ def executeBuiltinRm(cmd, cmd_shenv): ('lpszProgressTitle', LPCWSTR), ] - FO_MOVE, FO_COPY, FO_DELETE, FO_RENAME = xrange(1, 5) + FO_MOVE, FO_COPY, FO_DELETE, FO_RENAME = range(1, 5) FOF_SILENT = 4 FOF_NOCONFIRMATION = 16 @@ -648,8 +648,10 @@ def executeBuiltinRm(cmd, cmd_shenv): path = os.path.abspath(path) + pFrom = create_unicode_buffer(path, len(path) + 2) + pFrom[len(path)] = pFrom[len(path) + 1] = '\0' operation = SHFILEOPSTRUCTW(wFunc=UINT(FO_DELETE), - pFrom=LPCWSTR(unicode(path + '\0')), + pFrom=LPCWSTR(addressof(pFrom)), fFlags=FOF_NO_UI) result = SHFileOperationW(byref(operation)) if result: diff --git a/utils/lit/lit/util.py b/utils/lit/lit/util.py index 3b1391115a5..8b346f700b0 100644 --- a/utils/lit/lit/util.py +++ b/utils/lit/lit/util.py @@ -149,7 +149,7 @@ def mkdir(path): from ctypes import GetLastError, WinError path = os.path.abspath(path) - NTPath = unicode(r'\\?\%s' % path) + NTPath = to_unicode(r'\\?\%s' % path) if not windll.kernel32.CreateDirectoryW(NTPath, None): raise WinError(GetLastError()) else: