diff --git a/lib/reline/config.rb b/lib/reline/config.rb index 87726393a6..4c07a73701 100644 --- a/lib/reline/config.rb +++ b/lib/reline/config.rb @@ -252,7 +252,7 @@ def handle_directive(directive, file, no) end @skip_section = @if_stack.pop when 'include' - read(args) + read(File.expand_path(args)) end end diff --git a/test/reline/test_config.rb b/test/reline/test_config.rb index b16aed720a..9ead047ce4 100644 --- a/test/reline/test_config.rb +++ b/test/reline/test_config.rb @@ -160,6 +160,23 @@ def test_include assert_equal :audible, @config.instance_variable_get(:@bell_style) end + def test_include_expand_path + home_backup = ENV['HOME'] + File.open('included_partial', 'wt') do |f| + f.write(<<~PARTIAL_LINES) + set bell-style on + PARTIAL_LINES + end + ENV['HOME'] = Dir.pwd + @config.read_lines(<<~LINES.lines) + $include ~/included_partial + LINES + + assert_equal :audible, @config.instance_variable_get(:@bell_style) + ensure + ENV['HOME'] = home_backup + end + def test_if @config.read_lines(<<~LINES.lines) $if Ruby