diff --git a/doc/changelog.txt b/doc/changelog.txt index 566712fe..807ade8a 100644 --- a/doc/changelog.txt +++ b/doc/changelog.txt @@ -3,6 +3,8 @@ Fixes: - checking: Fix broken anchor checking. Closes: SF bug #3140765 +- checking: Properly detect filenames with spaces as + internal links when given as start URL. - logging: Allow Unicode strings to be written to stdout without encoding errors. - gui: Reset statistics before each run. diff --git a/linkcheck/checker/fileurl.py b/linkcheck/checker/fileurl.py index 7c95f5a0..adc7905c 100644 --- a/linkcheck/checker/fileurl.py +++ b/linkcheck/checker/fileurl.py @@ -266,14 +266,6 @@ class FileUrl (urlbase.UrlBase): @return non-empty regex pattern or None @rtype String or None """ - url = absolute_url(self.base_url, self.base_ref, self.parent_url) - if not url: + if not self.url: return None - parts = strformat.url_unicode_split(url) - path = urlutil.splitparams(parts[2])[0] - segments = path.split('/') - if not self.is_directory(): - # cut off filename to have a directory - segments = segments[:-1] - path = "/".join(segments) - return "file://%s" % re.escape(path) + return re.escape(self.url) diff --git a/tests/checker/data/a b/t.txt b/tests/checker/data/a b/t.txt new file mode 100644 index 00000000..8d1c8b69 --- /dev/null +++ b/tests/checker/data/a b/t.txt @@ -0,0 +1 @@ + diff --git a/tests/checker/test_file.py b/tests/checker/test_file.py index 9de31bc9..45a45d71 100644 --- a/tests/checker/test_file.py +++ b/tests/checker/test_file.py @@ -129,3 +129,19 @@ class TestFile (LinkCheckTest): u"valid", ] self.direct(url, resultlines) + + def test_good_dir_space (self): + url = u"file://%(curdir)s/%(datadir)s/a b/" % self.get_attrs() + nurl = self.norm(url) + resultlines = [ + u"url %s" % url, + u"cache key %s" % nurl, + u"real url %s" % nurl, + u"valid", + u"url t.txt", + u"cache key %st.txt" % nurl, + u"real url %st.txt" % nurl, + u"name t.txt", + u"valid", + ] + self.direct(url, resultlines, recursionlevel=1)