diff --git a/ruby.c b/ruby.c index bbf2fdb762..bf71a288d4 100644 --- a/ruby.c +++ b/ruby.c @@ -1676,6 +1676,8 @@ warn_cr_in_shebang(const char *str, long len) rb_warn("shebang line ends with \\r may cause a problem"); } } +#else +#define warn_cr_in_shebang(str, len) (void)0 #endif struct load_file_arg { @@ -1725,9 +1727,7 @@ load_file_internal(VALUE argp_v) line_start++; RSTRING_GETMEM(line, str, len); if (len > 2 && str[0] == '#' && str[1] == '!') { -#ifndef DOSISH if (line_start == 1) warn_cr_in_shebang(str, len); -#endif if ((p = strstr(str+2, ruby_engine)) != 0) { goto start_read; } @@ -1745,9 +1745,7 @@ load_file_internal(VALUE argp_v) return 0; RSTRING_GETMEM(line, str, len); -#ifndef DOSISH warn_cr_in_shebang(str, len); -#endif if ((p = strstr(str, ruby_engine)) == 0) { /* not ruby script, assume -x flag */ goto search_shebang; diff --git a/test/ruby/test_rubyoptions.rb b/test/ruby/test_rubyoptions.rb index 6ee151e5e8..82fc5e44e7 100644 --- a/test/ruby/test_rubyoptions.rb +++ b/test/ruby/test_rubyoptions.rb @@ -312,9 +312,10 @@ class TestRubyOptions < Test::Unit::TestCase assert_in_out_err([], "#! /test_r_u_b_y_test_r_u_b_y_options_foobarbazqux -foo -bar\r\np 1\r\n", [], /: no Ruby script found in input/) + warning = /mswin|mingw/ =~ RUBY_PLATFORM ? [] : /shebang line ends with \\r/ assert_in_out_err([{'RUBYOPT' => nil}], "#!ruby -KU -Eutf-8\r\np \"\u3042\"\r\n", - ["\"\u3042\""], /shebang line ends with \\r/, - encoding: Encoding::UTF_8) if /mswin|mingw/ !~ RUBY_PLATFORM + ["\"\u3042\""], warning, + encoding: Encoding::UTF_8) bug4118 = '[ruby-dev:42680]' assert_in_out_err(%w[], "#!/bin/sh\n""#!shebang\n""#!ruby\n""puts __LINE__\n",