diff --git a/doc/rdoc/markup_reference.rb b/doc/rdoc/markup_reference.rb
index ee585b2497..03b1e37ffa 100644
--- a/doc/rdoc/markup_reference.rb
+++ b/doc/rdoc/markup_reference.rb
@@ -991,6 +991,7 @@
# generates baz[rdoc-ref:RDoc::MarkupReference#dummy_attribute].
# - Alias: bad[rdoc-ref:RDoc::MarkupReference#dummy_instance_alias]
# generates bad[rdoc-ref:RDoc::MarkupReference#dummy_instance_alias].
+# - File: README[rdoc-ref:README.rdoc] generates README[rdoc-ref:README.rdoc].
#
# If the referenced item does not exist, no link is generated
# and entire rdoc-ref: square-bracketed clause is removed
diff --git a/lib/rdoc/code_object/top_level.rb b/lib/rdoc/code_object/top_level.rb
index eeeff026a1..93d318901b 100644
--- a/lib/rdoc/code_object/top_level.rb
+++ b/lib/rdoc/code_object/top_level.rb
@@ -114,14 +114,6 @@ def base_name
alias name base_name
- ##
- # Only a TopLevel that contains text file) will be displayed. See also
- # RDoc::CodeObject#display?
-
- def display?
- text? and super
- end
-
##
# See RDoc::TopLevel::find_class_or_module
#--
diff --git a/lib/rdoc/cross_reference.rb b/lib/rdoc/cross_reference.rb
index a942d33c96..1f33538b73 100644
--- a/lib/rdoc/cross_reference.rb
+++ b/lib/rdoc/cross_reference.rb
@@ -200,7 +200,7 @@ def resolve(name, text)
ref = resolve_method name unless ref
# Try a page name
- ref = @store.page name if not ref and name =~ /^[\w.]+$/
+ ref = @store.page name if not ref and name =~ /^[\w.\/]+$/
ref = nil if RDoc::Alias === ref # external alias, can't link to it
diff --git a/lib/rdoc/store.rb b/lib/rdoc/store.rb
index c6cf7ef27f..57429e6aad 100644
--- a/lib/rdoc/store.rb
+++ b/lib/rdoc/store.rb
@@ -720,10 +720,10 @@ def modules_hash
end
##
- # Returns the RDoc::TopLevel that is a text file and has the given +name+
+ # Returns the RDoc::TopLevel that is a file and has the given +name+
def page(name)
- @text_files_hash.each_value.find do |file|
+ @files_hash.each_value.find do |file|
file.page_name == name or file.base_name == name
end
end
diff --git a/test/rdoc/rdoc_cross_reference_test.rb b/test/rdoc/rdoc_cross_reference_test.rb
index 4f24fd7700..e536a67a89 100644
--- a/test/rdoc/rdoc_cross_reference_test.rb
+++ b/test/rdoc/rdoc_cross_reference_test.rb
@@ -115,7 +115,7 @@ def test_resolve_class
end
def test_resolve_file
- refute_ref 'xref_data.rb'
+ assert_ref @top_level, 'xref_data.rb'
end
def test_resolve_method
diff --git a/test/rdoc/rdoc_top_level_test.rb b/test/rdoc/rdoc_top_level_test.rb
index 385860517b..a785abf06e 100644
--- a/test/rdoc/rdoc_top_level_test.rb
+++ b/test/rdoc/rdoc_top_level_test.rb
@@ -110,12 +110,7 @@ def test_base_name
end
def test_display_eh
- refute @top_level.display?
-
- page = @store.add_file 'README.txt'
- page.parser = RDoc::Parser::Simple
-
- assert page.display?
+ assert @top_level.display?
end
def test_eql_eh