aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--lib/scanf.rb2
-rw-r--r--test/scanf/test_scanf.rb4
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 <nobu@ruby-lang.org>
+
+ * lib/scanf.rb (Scanf::FormatSpecifier#initialize): %i should accept
+ single digit decimal. [ruby-core:18355]
+
Thu Aug 21 06:02:52 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* 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] ],