diff --git a/linkcheck/checker/fileurl.py b/linkcheck/checker/fileurl.py
index adc7905c..c23d98f3 100644
--- a/linkcheck/checker/fileurl.py
+++ b/linkcheck/checker/fileurl.py
@@ -266,6 +266,12 @@ class FileUrl (urlbase.UrlBase):
@return non-empty regex pattern or None
@rtype String or None
"""
- if not self.url:
+ url = self.url
+ if not url:
return None
- return re.escape(self.url)
+ if url.startswith('file://'):
+ i = url.rindex('/')
+ if i > 6:
+ # remove last filename to make directory internal
+ url = url[:i+1]
+ return re.escape(url)
diff --git a/tests/checker/data/a b/bl.html b/tests/checker/data/a b/bl.html
new file mode 100644
index 00000000..0765d830
--- /dev/null
+++ b/tests/checker/data/a b/bl.html
@@ -0,0 +1,3 @@
+Broken link
+Broken link target
+External link
diff --git a/tests/checker/data/a b/el.html b/tests/checker/data/a b/el.html
new file mode 100644
index 00000000..82d3502f
--- /dev/null
+++ b/tests/checker/data/a b/el.html
@@ -0,0 +1,2 @@
+Broken link
+Broken link target
diff --git a/tests/checker/test_file.py b/tests/checker/test_file.py
index 45a45d71..ee897106 100644
--- a/tests/checker/test_file.py
+++ b/tests/checker/test_file.py
@@ -131,17 +131,31 @@ class TestFile (LinkCheckTest):
self.direct(url, resultlines)
def test_good_dir_space (self):
- url = u"file://%(curdir)s/%(datadir)s/a b/" % self.get_attrs()
+ url = u"file://%(curdir)s/%(datadir)s/a b/bl.html" % self.get_attrs()
nurl = self.norm(url)
+ url2 = u"file://%(curdir)s/%(datadir)s/a b/el.html" % self.get_attrs()
+ nurl2 = self.norm(url2)
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"url bl.html#bl",
+ u"cache key %s" % nurl,
+ u"real url %s" % nurl,
+ u"name Broken link",
+ u"warning Anchor `bl' not found. Available anchors: `BL'.",
+ u"valid",
+ u"url el.html",
+ u"cache key %s" % nurl2,
+ u"real url %s" % nurl2,
+ u"name External link",
+ u"valid",
+ u"url #bl",
+ u"cache key %s" % nurl2,
+ u"real url %s" % nurl2,
+ u"name Broken link",
+ u"warning Anchor `bl' not found. Available anchors: `BL'.",
u"valid",
]
- self.direct(url, resultlines, recursionlevel=1)
+ self.direct(url, resultlines, recursionlevel=2)