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

ruby-changes:12055

From: nobu <ko1@a...>
Date: Wed, 17 Jun 2009 14:37:39 +0900 (JST)
Subject: [ruby-changes:12055] Ruby:r23722 (trunk): * sample/test.rb (valid_syntax?): skips BOM.

nobu	2009-06-17 14:37:23 +0900 (Wed, 17 Jun 2009)

  New Revision: 23722

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

  Log:
    * sample/test.rb (valid_syntax?): skips BOM.  [ruby-dev:38666]
    * test/ruby/test_system.rb (TestSystem#valid_syntax?): ditto.

  Modified files:
    trunk/ChangeLog
    trunk/sample/test.rb
    trunk/test/ruby/test_system.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 23721)
+++ ChangeLog	(revision 23722)
@@ -1,3 +1,9 @@
+Wed Jun 17 14:37:18 2009  Nobuyoshi Nakada  <nobu@r...>
+
+	* sample/test.rb (valid_syntax?): skips BOM.  [ruby-dev:38666]
+
+	* test/ruby/test_system.rb (TestSystem#valid_syntax?): ditto.
+
 Wed Jun 17 13:54:18 2009  Yukihiro Matsumoto  <matz@r...>
 
 	* ext/strscan/strscan.c (Init_strscan): remove obsolete
Index: sample/test.rb
===================================================================
--- sample/test.rb	(revision 23721)
+++ sample/test.rb	(revision 23722)
@@ -1930,10 +1930,11 @@
 
 def valid_syntax?(code, fname)
   p fname
-  code.force_encoding("ascii-8bit")
-  code = code.sub(/\A(?:\s*\#.*$)*(\n)?/n) {
+  code = code.dup.force_encoding("ascii-8bit")
+  code.sub!(/\A(\xef\xbb\xbf)?(\s*\#.*$)*(\n)?/n) {
     "#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ok}\n"
-  }.force_encoding("us-ascii")
+  }
+  code.force_encoding("us-ascii")
   catch {|tag| eval(code, binding, fname, 0)}
 rescue Exception
   STDERR.puts $!.message
Index: test/ruby/test_system.rb
===================================================================
--- test/ruby/test_system.rb	(revision 23721)
+++ test/ruby/test_system.rb	(revision 23722)
@@ -4,10 +4,11 @@
 
 class TestSystem < Test::Unit::TestCase
   def valid_syntax?(code, fname)
-    code.force_encoding("ascii-8bit")
-    code = code.sub(/\A(?:\s*\#.*$)*(\n)?/n) {
+    code = code.dup.force_encoding("ascii-8bit")
+    code.sub!(/\A(\xef\xbb\xbf)?(\s*\#.*$)*(\n)?/n) {
       "#$&#{"\n" if $1 && !$2}BEGIN{throw tag, :ok}\n"
     }
+    code.force_encoding("us-ascii")
     catch {|tag| eval(code, binding, fname, 0)}
   end
 

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

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