[前][次][番号順一覧][スレッド一覧]

ruby-changes:16784

From: nobu <ko1@a...>
Date: Thu, 29 Jul 2010 05:52:33 +0900 (JST)
Subject: [ruby-changes:16784] Ruby:r28779 (trunk): * file.c (rb_file_s_basename): pass baselen to rmext.

nobu	2010-07-29 05:52:16 +0900 (Thu, 29 Jul 2010)

  New Revision: 28779

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=28779

  Log:
    * file.c (rb_file_s_basename): pass baselen to rmext.

  Modified files:
    trunk/ChangeLog
    trunk/file.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 28778)
+++ ChangeLog	(revision 28779)
@@ -1,3 +1,7 @@
+Thu Jul 29 05:52:15 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* file.c (rb_file_s_basename): pass baselen to rmext.
+
 Thu Jul 29 02:38:09 2010  NARUSE, Yui  <naruse@r...>
 
 	* configure.in: not [freebsd] but [freebsd*] for AS_CASE.
Index: file.c
===================================================================
--- file.c	(revision 28778)
+++ file.c	(revision 28779)
@@ -3398,15 +3398,12 @@
 }
 
 static size_t
-rmext(const char *p, long l1, const char *e)
+rmext(const char *p, long l0, long l1, const char *e)
 {
-    long l0, l2;
+    long l2;
 
     if (!e) return 0;
 
-    for (l0 = 0; l0 < l1; ++l0) {
-	if (p[l0] != '.') break;
-    }
     l2 = strlen(e);
     if (l2 == 2 && e[1] == '*') {
 	unsigned char c = *e;
@@ -3527,7 +3524,7 @@
 
     p = ruby_find_basename(name, &f, &n);
     if (n >= 0) {
-	if (NIL_P(fext) || !(f = rmext(p, n, StringValueCStr(fext)))) {
+	if (NIL_P(fext) || !(f = rmext(p, f, n, StringValueCStr(fext)))) {
 	    f = n;
 	}
 	if (f == RSTRING_LEN(fname)) return rb_str_new_shared(fname);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]