Close included files after reading
[mudpy.git] / mudpy / misc.py
index f94c2a8..f111b9e 100644 (file)
@@ -1371,14 +1371,14 @@ def replace_macros(user, text, is_input=False):
         elif macro.startswith("inc:"):
             incfile = mudpy.data.find_file(macro[4:], universe=universe)
             if os.path.exists(incfile):
         elif macro.startswith("inc:"):
             incfile = mudpy.data.find_file(macro[4:], universe=universe)
             if os.path.exists(incfile):
-                incfd = codecs.open(incfile, "r", "utf-8")
                 replacement = ""
                 replacement = ""
-                for line in incfd:
-                    if line.endswith("\n") and not line.endswith("\r\n"):
-                        line = line.replace("\n", "\r\n")
-                    replacement += line
-                # lose the trailing eol
-                replacement = replacement[:-2]
+                with codecs.open(incfile, "r", "utf-8") as incfd:
+                    for line in incfd:
+                        if line.endswith("\n") and not line.endswith("\r\n"):
+                            line = line.replace("\n", "\r\n")
+                        replacement += line
+                    # lose the trailing eol
+                    replacement = replacement[:-2]
             else:
                 replacement = ""
                 log("Couldn't read included " + incfile + " file.", 7)
             else:
                 replacement = ""
                 log("Couldn't read included " + incfile + " file.", 7)