From b9e3f3c129b39bd99b1738dbed4273985c464074 Mon Sep 17 00:00:00 2001 From: nobu Date: Wed, 20 Aug 2008 21:12:58 +0000 Subject: [PATCH] * lib/scanf.rb (Scanf::FormatSpecifier#initialize): %i should accept single digit decimal. [ruby-core:18355] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/scanf.rb | 2 +- test/scanf/test_scanf.rb | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index cf36d76bf6..9628453e64 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Aug 21 06:12:56 2008 Nobuyoshi Nakada + + * lib/scanf.rb (Scanf::FormatSpecifier#initialize): %i should accept + single digit decimal. [ruby-core:18355] + Thu Aug 21 06:02:52 2008 Nobuyoshi Nakada * range.c (range_initialize_copy): Range is now a Struct. diff --git a/lib/scanf.rb b/lib/scanf.rb index 8d06bf39c4..564ce11fee 100644 --- a/lib/scanf.rb +++ b/lib/scanf.rb @@ -357,7 +357,7 @@ module Scanf # %i when /%\*?i/ - [ "([-+]?(?:(?:0[0-7]+)|(?:0[Xx]#{h}+)|(?:[1-9]\\d+)))", :extract_integer ] + [ "([-+]?(?:(?:0[0-7]+)|(?:0[Xx]#{h}+)|(?:[1-9]\\d*)))", :extract_integer ] # %5i when /%\*?(\d+)i/ diff --git a/test/scanf/test_scanf.rb b/test/scanf/test_scanf.rb index d2e7aa988f..fe4ac507b4 100644 --- a/test/scanf/test_scanf.rb +++ b/test/scanf/test_scanf.rb @@ -179,8 +179,8 @@ def tests [ "%3d%3x", "12abc", [12, "abc".hex] ], [ "%s%i%d", "hello +0xdef 123", [ "hello", "def".hex, 123] ], [ "%s%i%d", "hello -0xdef 123", [ "hello", -"def".hex, 123] ], - [ "%s%i%i%i", "hello 012 -012 100", [ "hello", 10, -10, 100 ] ], - [ "%s%i%i%i", "hello 012 0x12 100", [ "hello", 10, 18, 100 ] ], + [ "%s%i%i%i%i", "hello 012 -012 100 1", [ "hello", 10, -10, 100, 1 ] ], + [ "%s%i%i%i%i", "hello 012 0x12 100 1", [ "hello", 10, 18, 100, 1 ] ], [ "%s%5i%3i%4i", "hello 0x123 123 0123", [ "hello", "0x123".hex, 123,"0123".oct] ], [ "%s%3i%4i", "hello 1230123", [ "hello", 123,"0123".oct] ], [ "%s%3i", "hello 1230", [ "hello", 123] ],