summaryrefslogtreecommitdiff
path: root/sphinx/directives/code.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/directives/code.py')
-rw-r--r--sphinx/directives/code.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/sphinx/directives/code.py b/sphinx/directives/code.py
index 6fb21d14..0d04c906 100644
--- a/sphinx/directives/code.py
+++ b/sphinx/directives/code.py
@@ -122,11 +122,11 @@ class LiteralInclude(Directive):
encoding = self.options.get('encoding', env.config.source_encoding)
codec_info = codecs.lookup(encoding)
+ f = None
try:
f = codecs.StreamReaderWriter(open(filename, 'rb'),
codec_info[2], codec_info[3], 'strict')
lines = f.readlines()
- f.close()
except (IOError, OSError):
return [document.reporter.warning(
'Include file %r not found or reading it failed' % filename,
@@ -136,6 +136,9 @@ class LiteralInclude(Directive):
'Encoding %r used for reading included file %r seems to '
'be wrong, try giving an :encoding: option' %
(encoding, filename))]
+ finally:
+ if f is not None:
+ f.close()
objectname = self.options.get('pyobject')
if objectname is not None: