From 57d6cb4af92892de6f9b54b58747dc5432d6d03c Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 26 Jun 2014 13:30:08 +0000 Subject: [PATCH] sprintf.c: remove extra parentheses * sprintf.c (GETASTER): remove extra parentheses from the second argument so that the error message does not contain them. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- sprintf.c | 2 +- test/ruby/test_sprintf.rb | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/sprintf.c b/sprintf.c index 52a7168dc9..9a08764448 100644 --- a/sprintf.c +++ b/sprintf.c @@ -120,7 +120,7 @@ sign_bits(int base, const char *p) #define GETASTER(val) do { \ t = p++; \ n = 0; \ - GETNUM(n, (val)); \ + GETNUM(n, val); \ if (*p == '$') { \ tmp = GETPOSARG(n); \ } \ diff --git a/test/ruby/test_sprintf.rb b/test/ruby/test_sprintf.rb index a57509f458..2a0fc487c1 100644 --- a/test/ruby/test_sprintf.rb +++ b/test/ruby/test_sprintf.rb @@ -309,6 +309,12 @@ class TestSprintf < Test::Unit::TestCase def test_star assert_equal("-1 ", sprintf("%*d", -3, -1)) + assert_raise_with_message(ArgumentError, /width too big/) { + sprintf("%*999999999999999999999999999999999999999999999999999999999999$d", 1) + } + assert_raise_with_message(ArgumentError, /prec too big/) { + sprintf("%.*999999999999999999999999999999999999999999999999999999999999$d", 1) + } end def test_escape