Skip to content

Commit

Permalink
Scan the code range of the last added portion
Browse files Browse the repository at this point in the history
  • Loading branch information
nobu committed Aug 18, 2022
1 parent f34280e commit 99116da
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions sprintf.c
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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;
}
Expand Down

0 comments on commit 99116da

Please sign in to comment.