D7626: config: close file even if we fail to read it
martinvonz (Martin von Zweigbergk)
phabricator at mercurial-scm.org
Thu Dec 12 23:44:56 UTC 2019
martinvonz created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
If we get an exception from cfg.read(), we would not close the file
before this patch. This patch uses a context manager to make sure we
close it.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D7626
AFFECTED FILES
mercurial/ui.py
CHANGE DETAILS
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -434,16 +434,16 @@
return
raise
- cfg = config.config()
- trusted = sections or trust or self._trusted(fp, filename)
+ with fp:
+ cfg = config.config()
+ trusted = sections or trust or self._trusted(fp, filename)
- try:
- cfg.read(filename, fp, sections=sections, remap=remap)
- fp.close()
- except error.ParseError as inst:
- if trusted:
- raise
- self.warn(_(b"ignored: %s\n") % stringutil.forcebytestr(inst))
+ try:
+ cfg.read(filename, fp, sections=sections, remap=remap)
+ except error.ParseError as inst:
+ if trusted:
+ raise
+ self.warn(_(b'ignored: %s\n') % stringutil.forcebytestr(inst))
if self.plain():
for k in (
To: martinvonz, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list