diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-08-17 16:10:51 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2022-08-19 03:05:53 +0900 |
commit | 99116da7f05633697177c09cf4de5080028d77f8 (patch) | |
tree | a70467efae729216f8af33d7a3eb47d980a64710 /sprintf.c | |
parent | f34280ec6b684eeb21ef3336c7002e1a83dcfd2c (diff) |
Scan the code range of the last added portion
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/6253
Diffstat (limited to 'sprintf.c')
-rw-r--r-- | sprintf.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -927,6 +927,10 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) flags = FNONE; } + if (coderange != ENC_CODERANGE_BROKEN && scanned < blen) { + scanned += rb_str_coderange_scan_restartable(buf+scanned, buf+blen, enc, &coderange); + ENC_CODERANGE_SET(result, coderange); + } sprint_exit: rb_str_tmp_frozen_release(orig, fmt); /* XXX - We cannot validate the number of arguments if (digit)$ style used. @@ -937,8 +941,6 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt) if (RTEST(ruby_verbose)) rb_warn("%s", mesg); } rb_str_resize(result, blen); - // rb_str_format mutates the string without updating coderange - ENC_CODERANGE_CLEAR(result); return result; } |