diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-06-25 20:36:26 -0700 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2012-06-25 20:36:26 -0700 |
| commit | ed9488f2ca93a560a43295e6af046df6d3f4fa7d (patch) | |
| tree | 789384ca398e68c09990ade5068cc865e1259e73 /src/cdump.c | |
| parent | 1f94a15dd262030fbffe1d84f5c18a756070721a (diff) | |
| parent | b18ab1dc3f9b07ecd6cf2b80005ae08838c9926b (diff) | |
| download | mruby-ed9488f2ca93a560a43295e6af046df6d3f4fa7d.tar.gz mruby-ed9488f2ca93a560a43295e6af046df6d3f4fa7d.zip | |
Merge pull request #323 from monaka/pr-fix-str_to_format
Fix str_to_format.
Diffstat (limited to 'src/cdump.c')
| -rw-r--r-- | src/cdump.c | 29 |
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; } } |
