diff options
| -rw-r--r-- | mrbgems/mruby-time/src/time.c | 10 | ||||
| -rw-r--r-- | test/assert.rb | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/mrbgems/mruby-time/src/time.c b/mrbgems/mruby-time/src/time.c index 18010476b..e3b5d3fe7 100644 --- a/mrbgems/mruby-time/src/time.c +++ b/mrbgems/mruby-time/src/time.c @@ -19,6 +19,8 @@ #include <string.h> #endif +#include <stdlib.h> + #define NDIV(x,y) (-(-((x)+1)/(y))-1) #define TO_S_FMT "%Y-%m-%d %H:%M:%S " @@ -931,7 +933,13 @@ mrb_time_to_s(mrb_state *mrb, mrb_value self) struct mrb_time *tm = time_get_ptr(mrb, self); const char *fmt = tm->timezone == MRB_TIMEZONE_UTC ? TO_S_FMT "UTC" : TO_S_FMT "%z"; size_t len = strftime(buf, sizeof(buf), fmt, &tm->datetime); - return mrb_str_new(mrb, buf, len); + char *utf8; + mrb_value mrb_string; + buf[len] = '\0'; + utf8 = mrb_utf8_from_locale(buf, (int)len); + mrb_string = mrb_str_new_cstr(mrb, utf8); + mrb_utf8_free(utf8); + return mrb_string; } void diff --git a/test/assert.rb b/test/assert.rb index 5ae46ca70..32dd4ddc6 100644 --- a/test/assert.rb +++ b/test/assert.rb @@ -108,7 +108,7 @@ def assert(str = 'assert', iso = '') $ko_test += 1 t_print('F') end - elsif $mrbtest_assert_idx == 0 + elsif $mrbtest_assert_idx[-1] == 0 $asserts.push(assertion_string('Warn: ', str, iso, 'no assertion')) $warning_test += 1 t_print('W') |
