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

ruby-changes:8069

From: nobu <ko1@a...>
Date: Sat, 27 Sep 2008 03:59:29 +0900 (JST)
Subject: [ruby-changes:8069] Ruby:r19595 (trunk, ruby_1_8): * file.c (rmext): preceding dots are not a part of extension.

nobu	2008-09-27 03:57:23 +0900 (Sat, 27 Sep 2008)

  New Revision: 19595

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

  Log:
    * file.c (rmext): preceding dots are not a part of extension.

  Modified files:
    branches/ruby_1_8/ChangeLog
    branches/ruby_1_8/file.c
    trunk/ChangeLog
    trunk/file.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 19594)
+++ ChangeLog	(revision 19595)
@@ -1,3 +1,7 @@
+Sat Sep 27 03:57:19 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* file.c (rmext): preceding dots are not a part of extension.
+
 Sat Sep 27 03:15:51 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* vm.c (vm_jump_tag_but_local_jump): exc is not used if val is nil.
Index: file.c
===================================================================
--- file.c	(revision 19594)
+++ file.c	(revision 19595)
@@ -2955,16 +2955,19 @@
 static int
 rmext(const char *p, int l1, const char *e)
 {
-    int l2;
+    int l0, 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;
 	e = p + l1;
 	do {
-	    if (e <= p) return 0;
+	    if (e <= p + l0) return 0;
 	} while (*--e != c);
 	return e - p;
     }
Index: ruby_1_8/ChangeLog
===================================================================
--- ruby_1_8/ChangeLog	(revision 19594)
+++ ruby_1_8/ChangeLog	(revision 19595)
@@ -1,3 +1,7 @@
+Sat Sep 27 03:57:19 2008  Nobuyoshi Nakada  <nobu@r...>
+
+	* file.c (rmext): preceding dots are not a part of extension.
+
 Sat Sep 27 03:12:40 2008  Nobuyoshi Nakada  <nobu@r...>
 
 	* ext/socket/socket.c (host_str): numeric address should be unsigned.
Index: ruby_1_8/file.c
===================================================================
--- ruby_1_8/file.c	(revision 19594)
+++ ruby_1_8/file.c	(revision 19595)
@@ -2828,16 +2828,19 @@
     const char *p, *e;
     int l1;
 {
-    int l2;
+    int l0, 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;
 	e = p + l1;
 	do {
-	    if (e <= p) return 0;
+	    if (e <= p + l0) return 0;
 	} while (*--e != c);
 	return e - p;
     }

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

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