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

ruby-changes:18441

From: nobu <ko1@a...>
Date: Thu, 6 Jan 2011 05:03:39 +0900 (JST)
Subject: [ruby-changes:18441] Ruby:r30464 (trunk): * dln.c (init_funcname_len): ignore rest from first dot.

nobu	2011-01-06 05:03:28 +0900 (Thu, 06 Jan 2011)

  New Revision: 30464

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

  Log:
    * dln.c (init_funcname_len): ignore rest from first dot.
      [ruby-dev:41774]

  Added directories:
    trunk/ext/-test-/load/
    trunk/ext/-test-/load/dot.dot/
    trunk/test/-ext-/load/
  Added files:
    trunk/ext/-test-/load/dot.dot/dot.dot.c
    trunk/ext/-test-/load/dot.dot/extconf.rb
    trunk/test/-ext-/load/test_dot_dot.rb
  Modified files:
    trunk/ChangeLog
    trunk/dln.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 30463)
+++ ChangeLog	(revision 30464)
@@ -1,3 +1,8 @@
+Thu Jan  6 05:03:26 2011  Nobuyoshi Nakada  <nobu@r...>
+
+	* dln.c (init_funcname_len): ignore rest from first dot.
+	  [ruby-dev:41774]
+
 Thu Jan  6 02:55:48 2011  Aaron Patterson <aaron@t...>
 
 	* ext/psych/lib/psych/visitors/yaml_tree.rb: use YAML 1.0 output
Index: dln.c
===================================================================
--- dln.c	(revision 30463)
+++ dln.c	(revision 30464)
@@ -126,12 +126,12 @@
 
     /* Load the file as an object one */
     for (base = p; *p; p++) { /* Find position of last '/' */
-	if (*p == '.') dot = p;
-	if (isdirsep(*p)) base = p+1;
+	if (*p == '.' && !dot) dot = p;
+	if (isdirsep(*p)) base = p+1, dot = NULL;
     }
     *file = base;
     /* Delete suffix if it exists */
-    return (dot && dot > base ? dot : p) - base;
+    return (dot ? dot : p) - base;
 }
 
 static const char funcname_prefix[sizeof(FUNCNAME_PREFIX) - 1] = FUNCNAME_PREFIX;
Index: ext/-test-/load/dot.dot/extconf.rb
===================================================================
--- ext/-test-/load/dot.dot/extconf.rb	(revision 0)
+++ ext/-test-/load/dot.dot/extconf.rb	(revision 30464)
@@ -0,0 +1 @@
+create_makefile("-test-/load/dot.dot/dot.dot")

Property changes on: ext/-test-/load/dot.dot/extconf.rb
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: ext/-test-/load/dot.dot/dot.dot.c
===================================================================
--- ext/-test-/load/dot.dot/dot.dot.c	(revision 0)
+++ ext/-test-/load/dot.dot/dot.dot.c	(revision 30464)
@@ -0,0 +1 @@
+void Init_dot(void) {}

Property changes on: ext/-test-/load/dot.dot/dot.dot.c
___________________________________________________________________
Added: svn:eol-style
   + LF

Index: test/-ext-/load/test_dot_dot.rb
===================================================================
--- test/-ext-/load/test_dot_dot.rb	(revision 0)
+++ test/-ext-/load/test_dot_dot.rb	(revision 30464)
@@ -0,0 +1,10 @@
+require 'test/unit'
+
+class Test_DotDot < Test::Unit::TestCase
+  def test_load_dot_dot
+    feature = '[ruby-dev:41774]'
+    assert_nothing_raised(LoadError, feature) {
+      require '-test-/load/dot.dot/dot.dot'
+    }
+  end
+end

Property changes on: test/-ext-/load/test_dot_dot.rb
___________________________________________________________________
Added: svn:eol-style
   + LF


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

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