From 1ab8a925beec7cdce7669bcb7ee6fb16342b33fd Mon Sep 17 00:00:00 2001 From: shyouhei Date: Tue, 8 Jun 2010 08:45:59 +0000 Subject: merge revision(s) 27799:27805: * ext/iconv/iconv.c (rb_iconv_sys_fail): fix number of arguments. a patch by Masaya TARUI . * ext/iconv/iconv.c (rb_iconv_sys_fail): raise BrokenLibrary if errno is not set. [ruby-dev:41317] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_7@28221 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/iconv/iconv.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'ext') diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c index 09e3b393ef..677c10e3ad 100644 --- a/ext/iconv/iconv.c +++ b/ext/iconv/iconv.c @@ -146,6 +146,18 @@ map_charset return StringValuePtr(*code); } +NORETURN(static void rb_iconv_sys_fail(const char *s)); +static void +rb_iconv_sys_fail(const char *s) +{ + if (errno == 0) { + rb_exc_raise(iconv_fail(rb_eIconvBrokenLibrary, Qnil, Qnil, NULL, s)); + } + rb_sys_fail(s); +} + +#define rb_sys_fail(s) rb_iconv_sys_fail(s) + static iconv_t iconv_create #ifdef HAVE_PROTOTYPES -- cgit v1.2.3