From f215e02bf85f68d3a6106c2a1f4f7f063f819064 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Thu, 11 Apr 2024 10:17:27 +0200 Subject: Adding upstream version 7.0.14-dfsg. Signed-off-by: Daniel Baumann --- .../Source/Python/Common/LongFilePathSupport.py | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathSupport.py (limited to 'src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathSupport.py') diff --git a/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathSupport.py b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathSupport.py new file mode 100755 index 00000000..193abd26 --- /dev/null +++ b/src/VBox/Devices/EFI/Firmware/BaseTools/Source/Python/Common/LongFilePathSupport.py @@ -0,0 +1,45 @@ +## @file +# Override built in function file.open to provide support for long file path +# +# Copyright (c) 2014 - 2015, Intel Corporation. All rights reserved.
+# SPDX-License-Identifier: BSD-2-Clause-Patent +# + +import os +import platform +import shutil +import codecs + +## +# OpenLongPath +# Convert a file path to a long file path +# +def LongFilePath(FileName): + FileName = os.path.normpath(FileName) + if platform.system() == 'Windows': + if FileName.startswith('\\\\?\\'): + return FileName + if FileName.startswith('\\\\'): + return '\\\\?\\UNC\\' + FileName[2:] + if os.path.isabs(FileName): + return '\\\\?\\' + FileName + return FileName + +## +# OpenLongFilePath +# wrap open to support opening a long file path +# +def OpenLongFilePath(FileName, Mode='r', Buffer= -1): + return open(LongFilePath(FileName), Mode, Buffer) + +def CodecOpenLongFilePath(Filename, Mode='rb', Encoding=None, Errors='strict', Buffering=1): + return codecs.open(LongFilePath(Filename), Mode, Encoding, Errors, Buffering) + +## +# CopyLongFilePath +# wrap copyfile to support copy a long file path +# +def CopyLongFilePath(src, dst): + with open(LongFilePath(src), 'rb') as fsrc: + with open(LongFilePath(dst), 'wb') as fdst: + shutil.copyfileobj(fsrc, fdst) -- cgit v1.2.3