From 7a80cd60292ca86ce49f507719bf6ea23b2750ba Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 17 May 2008 02:29:13 +0000 Subject: * file.c (rb_file_s_extname): first dot is not an extension name. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@16439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 ++++ file.c | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index b1df9ff0df..deb35d31c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +Sat May 17 11:29:11 2008 Nobuyoshi Nakada + + * file.c (rb_file_s_extname): first dot is not an extension name. + Sat May 17 10:18:44 2008 Yukihiro Matsumoto * re.c (rb_reg_search): need to free allocated buffer in re_register. diff --git a/file.c b/file.c index 9a454ed5b9..6d4e017622 100644 --- a/file.c +++ b/file.c @@ -3023,7 +3023,7 @@ rb_file_s_extname(klass, fname) if (!p) p = name; else - p++; + name = ++p; e = 0; while (*p) { @@ -3053,7 +3053,7 @@ rb_file_s_extname(klass, fname) break; p = CharNext(p); } - if (!e || e+1 == p) /* no dot, or the only dot is first or end? */ + if (!e || e == name || e+1 == p) /* no dot, or the only dot is first or end? */ return rb_str_new(0, 0); extname = rb_str_new(e, p - e); /* keep the dot, too! */ OBJ_INFECT(extname, fname); -- cgit v1.2.3