git-p4: use with statements to close files after use in patchRCSKeywords

Python with statements are used to wrap the execution of a block of code
so that an object can be safely released when execution leaves the
scope.

They are desirable for improving code tidyness, and to ensure that
objects are properly destroyed even when exceptions are thrown.

Signed-off-by: Joel Holdsworth <jholdsworth@nvidia.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Joel Holdsworth 2021-12-16 13:46:15 +00:00 committed by Junio C Hamano
parent e773545c7f
commit 8618d322e0
1 changed files with 5 additions and 8 deletions

View File

@ -1757,14 +1757,11 @@ class P4Submit(Command, P4UserMap):
# Attempt to zap the RCS keywords in a p4 controlled file matching the given pattern
(handle, outFileName) = tempfile.mkstemp(dir='.')
try:
outFile = os.fdopen(handle, "w+")
inFile = open(file, "r")
regexp = re.compile(pattern, re.VERBOSE)
for line in inFile.readlines():
line = regexp.sub(r'$\1$', line)
outFile.write(line)
inFile.close()
outFile.close()
with os.fdopen(handle, "w+") as outFile, open(file, "r") as inFile:
regexp = re.compile(pattern, re.VERBOSE)
for line in inFile.readlines():
line = regexp.sub(r'$\1$', line)
outFile.write(line)
# Forcibly overwrite the original file
os.unlink(file)
shutil.move(outFileName, file)