summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorshimizukawa <shimizukawa@gmail.com>2013-02-05 04:40:47 +0000
committershimizukawa <shimizukawa@gmail.com>2013-02-05 04:40:47 +0000
commit1ca57f9962a98a2f83d4c160f5d201fc46562342 (patch)
tree8eded5b043e4e3600f3db33646b2418742cdd5de
parent41cb3b2c39bd9240373891a58ca21256481d9514 (diff)
downloadsphinx-1ca57f9962a98a2f83d4c160f5d201fc46562342.tar.gz
fix: reporting correct line number implementation (6fc25e0e3a5c) was not worked with docutils 0.7, 0.8.
-rw-r--r--sphinx/transforms.py16
1 files changed, 14 insertions, 2 deletions
diff --git a/sphinx/transforms.py b/sphinx/transforms.py
index 845b17ac..5b96300d 100644
--- a/sphinx/transforms.py
+++ b/sphinx/transforms.py
@@ -137,6 +137,19 @@ class CustomLocaleReporter(object):
def __init__(self, source, line):
self.source, self.line = source, line
+ try:
+ from docutils import __version__ as du_version
+ v = tuple([int(x) for x in du_version.split('.')[:2]])
+ except ImportError:
+ v = (99, 99)
+ self.du_version = v
+
+ def set_reporter(self, document):
+ if self.du_version < (0, 9):
+ document.reporter.locator = self.get_source_and_line
+ else:
+ document.reporter.get_source_and_line = self.get_source_and_line
+
def get_source_and_line(self, lineno=None):
return self.source, self.line
@@ -181,8 +194,7 @@ class Locale(Transform):
# dummy literal node will discard by 'patch = patch[0]'
patch = new_document(source, settings)
- patch.reporter.get_source_and_line = CustomLocaleReporter(
- node.source, node.line).get_source_and_line
+ CustomLocaleReporter(node.source, node.line).set_reporter(patch)
parser.parse(msgstr, patch)
patch = patch[0]
# XXX doctest and other block markup