diff options
author | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-08 08:45:59 +0000 |
---|---|---|
committer | shyouhei <shyouhei@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-06-08 08:45:59 +0000 |
commit | 1ab8a925beec7cdce7669bcb7ee6fb16342b33fd (patch) | |
tree | 6bc0dbd9b6e8460c508d19e42b86ffae8e90178e /ext | |
parent | 98e7a2abca70fd044d5db7e1404c218e74abbd33 (diff) |
merge revision(s) 27799:27805:
* ext/iconv/iconv.c (rb_iconv_sys_fail): fix number of arguments.
a patch by Masaya TARUI <tarui AT prx.jp>.
* 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
Diffstat (limited to 'ext')
-rw-r--r-- | ext/iconv/iconv.c | 12 |
1 files changed, 12 insertions, 0 deletions
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 |