diff --git a/ChangeLog b/ChangeLog index c92bfb8d54..d65df98a97 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Tue Apr 20 00:43:03 2010 Nobuyoshi Nakada + + * file.c (rb_file_s_extname): skip last directory separators. + [ruby-core:29627] + Tue Apr 20 00:41:25 2010 Nobuyoshi Nakada * io.c (internal_{read,write}_func, rb_{read,write}_internal): diff --git a/file.c b/file.c index af2730a12f..f9f8192637 100644 --- a/file.c +++ b/file.c @@ -3500,7 +3500,7 @@ rb_file_s_extname(VALUE klass, VALUE fname) if (!p) p = name; else - name = ++p; + do name = ++p; while (isdirsep(*p)); e = 0; while (*p && *p == '.') p++; diff --git a/test/ruby/test_file_exhaustive.rb b/test/ruby/test_file_exhaustive.rb index 4a26e435b8..634197e0a7 100644 --- a/test/ruby/test_file_exhaustive.rb +++ b/test/ruby/test_file_exhaustive.rb @@ -454,6 +454,8 @@ class TestFileExhaustive < Test::Unit::TestCase end end end + bug3175 = '[ruby-core:29627]' + assert_equal(".rb", File.extname("/tmp//bla.rb"), bug3175) assert_incompatible_encoding {|d| File.extname(d)} end