summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/string.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/string.c b/src/string.c
index 5152eadb3..7ea6844a1 100644
--- a/src/string.c
+++ b/src/string.c
@@ -2438,8 +2438,11 @@ mrb_str_inspect(mrb_state *mrb, mrb_value str)
continue;
}
else {
- int n = sprintf(buf, "\\%03o", c & 0377);
- mrb_str_buf_cat(mrb, result, buf, n);
+ buf[0] = '\\';
+ buf[3] = '0' + c % 8; c /= 8;
+ buf[2] = '0' + c % 8; c /= 8;
+ buf[1] = '0' + c % 8;
+ mrb_str_buf_cat(mrb, result, buf, 4);
continue;
}
}