aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/iconv/iconv.c12
-rw-r--r--version.h4
3 files changed, 19 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 009fa06023..90c5239e87 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat May 15 17:16:15 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * ext/iconv/iconv.c (rb_iconv_sys_fail): raise BrokenLibrary if
+ errno is not set. [ruby-dev:41317]
+
Fri May 14 07:27:07 2010 Nobuyoshi Nakada <nobu@ruby-lang.org>
* marshal.c (w_float): strip ".0" from end for rubyspec.
diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c
index 964cfff7a0..a25e9cb079 100644
--- a/ext/iconv/iconv.c
+++ b/ext/iconv/iconv.c
@@ -173,6 +173,18 @@ map_charset(VALUE *code)
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_raise(rb_eIconvBrokenLibrary, "%s", s);
+ }
+ rb_sys_fail(s);
+}
+
+#define rb_sys_fail(s) rb_iconv_sys_fail(s)
+
static iconv_t
iconv_create(VALUE to, VALUE from, struct rb_iconv_opt_t *opt, int *idx)
{
diff --git a/version.h b/version.h
index 779c45f001..68d2198679 100644
--- a/version.h
+++ b/version.h
@@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.3"
-#define RUBY_RELEASE_DATE "2010-05-14"
+#define RUBY_RELEASE_DATE "2010-05-15"
#define RUBY_PATCHLEVEL -1
#define RUBY_BRANCH_NAME "trunk"
@@ -8,7 +8,7 @@
#define RUBY_VERSION_TEENY 1
#define RUBY_RELEASE_YEAR 2010
#define RUBY_RELEASE_MONTH 5
-#define RUBY_RELEASE_DAY 14
+#define RUBY_RELEASE_DAY 15
#include "ruby/version.h"