From 9cab7d15ca791d0b14db03217485a7c756097a71 Mon Sep 17 00:00:00 2001 From: dblack Date: Wed, 3 Sep 2008 12:54:13 +0000 Subject: [PATCH] * lib/scanf.rb: fixed bug involving matching literal '[' * test/scanf/test_scanf.rb: added test for scanf.rb fix git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19094 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ lib/scanf.rb | 2 +- test/scanf/test_scanf.rb | 7 +++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c40e751330..6790515ea8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Wed Sep 3 21:49:00 2008 David A. Black + + * lib/scanf.rb: fixed bug involving matching literal '[' + + * test/scanf/test_scanf.rb: added test for scanf.rb fix + Wed Sep 3 21:31:59 2008 Tanaka Akira * transcode_data.h (WORDINDEX_SHIFT_BITS): defined. diff --git a/lib/scanf.rb b/lib/scanf.rb index 564ce11fee..cbb98b6f9f 100644 --- a/lib/scanf.rb +++ b/lib/scanf.rb @@ -325,7 +325,7 @@ module Scanf end def count_space? - /(?:\A|\S)%\*?\d*c|\[/.match(@spec_string) + /(?:\A|\S)%\*?\d*c|%\d*\[/.match(@spec_string) end def initialize(str) diff --git a/test/scanf/test_scanf.rb b/test/scanf/test_scanf.rb index fe4ac507b4..66ca629f54 100644 --- a/test/scanf/test_scanf.rb +++ b/test/scanf/test_scanf.rb @@ -276,6 +276,13 @@ def tests [ "%f", "+3.25", [3.25] ], [ "%f", "+3.25e2", [325.0] ], [ "%f", "3.z", [3.0] ], + +# Testing embedded matches including literal '[' behavior + [",%d,%f", ",10,1.1", [10,1.1] ], + [" ,%d,%f", " ,10,1.1", [10,1.1] ], + ["[%d,%f", "[10,1.1", [10,1.1] ], + [" [%d,%f", " [10,1.1", [10,1.1] ], + ] end end