From 9c831c9a9c69e32d6a75bb47c09a44c6d501a20b Mon Sep 17 00:00:00 2001 From: Masaki Muranaka Date: Thu, 28 Mar 2013 15:07:34 +0900 Subject: Remove the escape backslash from the result string. --- src/error.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/error.c b/src/error.c index 52e4958a1..0ad0df5f7 100644 --- a/src/error.c +++ b/src/error.c @@ -249,8 +249,15 @@ mrb_vformat(mrb_state *mrb, const char *format, va_list ap) } } else if (c == '\\') { - if (!*p) break; - p++; + if (*p) { + size = p - b - 1; + mrb_ary_push(mrb, ary, mrb_str_new(mrb, b, size)); + mrb_ary_push(mrb, ary, mrb_str_new(mrb, p, 1)); + b = ++p; + } + else { + break; + } } p++; } -- cgit v1.2.3 From d329d1f421a5e4500216e05f48570ff166c94551 Mon Sep 17 00:00:00 2001 From: Masaki Muranaka Date: Thu, 28 Mar 2013 15:08:29 +0900 Subject: Fix. In some cases, %S substitutions were failed. --- src/error.c | 1 - 1 file changed, 1 deletion(-) (limited to 'src') diff --git a/src/error.c b/src/error.c index 0ad0df5f7..fd2d1c277 100644 --- a/src/error.c +++ b/src/error.c @@ -259,7 +259,6 @@ mrb_vformat(mrb_state *mrb, const char *format, va_list ap) break; } } - p++; } if (b == format) { return mrb_str_new_cstr(mrb, format); -- cgit v1.2.3