summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2012-06-25 20:36:26 -0700
committerYukihiro "Matz" Matsumoto <[email protected]>2012-06-25 20:36:26 -0700
commited9488f2ca93a560a43295e6af046df6d3f4fa7d (patch)
tree789384ca398e68c09990ade5068cc865e1259e73
parent1f94a15dd262030fbffe1d84f5c18a756070721a (diff)
parentb18ab1dc3f9b07ecd6cf2b80005ae08838c9926b (diff)
downloadmruby-ed9488f2ca93a560a43295e6af046df6d3f4fa7d.tar.gz
mruby-ed9488f2ca93a560a43295e6af046df6d3f4fa7d.zip
Merge pull request #323 from monaka/pr-fix-str_to_format
Fix str_to_format.
-rw-r--r--src/cdump.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/cdump.c b/src/cdump.c
index 4f680d4f3..fedfd9c2b 100644
--- a/src/cdump.c
+++ b/src/cdump.c
@@ -73,22 +73,23 @@ str_format_len(mrb_value str)
static char*
str_to_format(mrb_value str, char *buf)
{
- char *src, *dst;
+ char *src;
+ char *dst;
- for (src = RSTRING_PTR(str), dst = buf; src < RSTRING_END(str);) {
+ for (src = RSTRING_PTR(str), dst = buf; src < RSTRING_END(str); src++) {
switch (*src) {
- case 0x07:/* BEL */ memcpy(dst, "\\a", 2); dst+=2; src+=2; break;
- case 0x08:/* BS */ memcpy(dst, "\\b", 2); dst+=2; src+=2; break;
- case 0x09:/* HT */ memcpy(dst, "\\t", 2); dst+=2; src+=2; break;
- case 0x0A:/* LF */ memcpy(dst, "\\n", 2); dst+=2; src+=2; break;
- case 0x0B:/* VT */ memcpy(dst, "\\v", 2); dst+=2; src+=2; break;
- case 0x0C:/* FF */ memcpy(dst, "\\f", 2); dst+=2; src+=2; break;
- case 0x0D:/* CR */ memcpy(dst, "\\r", 2); dst+=2; src+=2; break;
- case 0x22:/* " */ memcpy(dst, "\\\"", 2); dst+=2; src+=2; break;
- case 0x27:/* ' */ memcpy(dst, "\\\'", 2); dst+=2; src+=2; break;
- case 0x3F:/* ? */ memcpy(dst, "\\\?", 2); dst+=2; src+=2; break;
- case 0x5C:/* \ */ memcpy(dst, "\\\\", 2); dst+=2; src+=2; break;
- default: *dst++ = *src++; break;
+ case 0x07:/* BEL */ *dst++ = '\\'; *dst++ = 'a'; break;
+ case 0x08:/* BS */ *dst++ = '\\'; *dst++ = 'b'; break;
+ case 0x09:/* HT */ *dst++ = '\\'; *dst++ = 't'; break;
+ case 0x0A:/* LF */ *dst++ = '\\'; *dst++ = 'n'; break;
+ case 0x0B:/* VT */ *dst++ = '\\'; *dst++ = 'v'; break;
+ case 0x0C:/* FF */ *dst++ = '\\'; *dst++ = 'f'; break;
+ case 0x0D:/* CR */ *dst++ = '\\'; *dst++ = 'r'; break;
+ case 0x22:/* " */ *dst++ = '\\'; *dst++ = '\"'; break;
+ case 0x27:/* ' */ *dst++ = '\\'; *dst++ = '\''; break;
+ case 0x3F:/* ? */ *dst++ = '\\'; *dst++ = '\?'; break;
+ case 0x5C:/* \ */ *dst++ = '\\'; *dst++ = '\\'; break;
+ default: *dst++ = *src; break;
}
}