diff options
| author | Berke Güzel <wenekar1@gmail.com> | 2026-10-13 19:41:47 +0300 |
|---|---|---|
| committer | Berke Güzel <wenekar1@gmail.com> | 2026-10-13 19:41:47 +0300 |
| commit | 1b52f704a005d79d00b1260b1e5bc5d6798ff7b6 (patch) | |
| tree | 798c93f1007d0156635d9db63d47ae9a6328dd80 /src/text_run.c | |
| parent | 01e1c61e9fcf4a0b0164a7fe5395a209a50f6905 (diff) | |
Replace scalar loops with SIMD spans, packed stores, and direct wrap-pad checks
Diffstat (limited to 'src/text_run.c')
| -rw-r--r-- | src/text_run.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/src/text_run.c b/src/text_run.c index 9df7ac0..bf0e8a9 100644 --- a/src/text_run.c +++ b/src/text_run.c @@ -326,11 +326,8 @@ struct text_run_bytes term_text_run_bytes(uint8_t *restrict dst, const char *res unsigned char c = (unsigned char)buf[i]; if (c >= 0x20 && c < 0x7f) { int room = max_cols - cx < len - i ? max_cols - cx : len - i; - int n = 1; - while (n < room && n < 16 && (unsigned char)(buf[i + n] - 0x20) < 0x5f) - n++; - if (n == 16 && n < room) - n += (int)scan_printable_span(buf + i + 16, (size_t)(room - 16), 0x7f); + int n = (int)scan_printable_span(buf + i, (size_t)room, 0x7f); + if (!n) n = 1; bytes_copy_small(dst + o, buf + i, n); i += n; o += n; |
