filemerge: reduce some duplication in `_maketempfiles()`
authorMartin von Zweigbergk <martinvonz@google.com>
Mon, 14 Feb 2022 22:16:29 -0800
changeset 48787 69000dc0dced
parent 48786 f20feb496d3c
child 48788 f90337706ce7
filemerge: reduce some duplication in `_maketempfiles()` The two callers of the local `maketempfrompath()` function used the returned file object in the same way. We can reduce duplication by moving that code into the function. Differential Revision: https://phab.mercurial-scm.org/D12192
mercurial/filemerge.py
--- a/mercurial/filemerge.py	Mon Feb 14 22:11:50 2022 -0800
+++ b/mercurial/filemerge.py	Mon Feb 14 22:16:29 2022 -0800
@@ -19,7 +19,6 @@
 )
 from .pycompat import (
     getattr,
-    open,
 )
 
 from . import (
@@ -923,30 +922,24 @@
     """
     tmproot = pycompat.mkdtemp(prefix=b'hgmerge-')
 
-    def maketempfrompath(prefix, path):
+    def maketempfrompath(prefix, path, data):
         fullbase, ext = os.path.splitext(path)
         pre = b"%s~%s" % (os.path.basename(fullbase), prefix)
         name = os.path.join(tmproot, pre)
         if ext:
             name += ext
-        f = open(name, "wb")
-        return f, name
+        util.writefile(name, data)
+        return name
 
     def tempfromcontext(prefix, ctx):
-        f, name = maketempfrompath(prefix, ctx.path())
-        data = ctx.decodeddata()
-        f.write(data)
-        f.close()
-        return name
+        return maketempfrompath(prefix, ctx.path(), ctx.decodeddata())
 
     b = tempfromcontext(b"base", fca)
     c = tempfromcontext(b"other", fco)
     d = localpath
     if localpath is not None:
-        f, d = maketempfrompath(b"local", d)
         data = util.readfile(localpath)
-        f.write(data)
-        f.close()
+        d = maketempfrompath(b"local", localpath, data)
 
     try:
         yield b, c, d