summaryrefslogtreecommitdiff
path: root/sphinx
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx')
-rw-r--r--sphinx/builders/gettext.py6
-rw-r--r--sphinx/util/osutil.py7
2 files changed, 9 insertions, 4 deletions
diff --git a/sphinx/builders/gettext.py b/sphinx/builders/gettext.py
index 1552e273..41a5acbc 100644
--- a/sphinx/builders/gettext.py
+++ b/sphinx/builders/gettext.py
@@ -14,11 +14,9 @@ from codecs import open
from datetime import datetime
from collections import defaultdict
-from docutils import nodes
-
from sphinx.builders import Builder
from sphinx.util.nodes import extract_messages
-from sphinx.util.osutil import SEP, copyfile
+from sphinx.util.osutil import SEP, safe_relpath
from sphinx.util.console import darkgreen
POHEADER = ur"""
@@ -113,7 +111,7 @@ class MessageCatalogBuilder(I18nBuilder):
# generate "#: file1:line1\n#: file2:line2 ..."
pofile.write(u"#: %s\n" % "\n#: ".join("%s:%s" %
- (path.relpath(source, self.outdir), line)
+ (safe_relpath(source, self.outdir), line)
for source, line, _ in positions))
# generate "# uuid1\n# uuid2\n ..."
pofile.write(u"# %s\n" % "\n# ".join(uid for _, _, uid
diff --git a/sphinx/util/osutil.py b/sphinx/util/osutil.py
index b7a12cda..b07fa6ab 100644
--- a/sphinx/util/osutil.py
+++ b/sphinx/util/osutil.py
@@ -133,3 +133,10 @@ if sys.version_info < (3, 0):
.decode('utf-8')
else:
ustrftime = time.strftime
+
+
+def safe_relpath(path, start=None):
+ try:
+ return os.path.relpath(path, start)
+ except ValueError:
+ return path