From 855d07cfbe7a6e59955560c9a7ca8dffe8ac85bd Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Thu, 19 Mar 2026 16:36:46 +0100 Subject: Handle CLRF line-endings correctly --- src/work.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/work.c b/src/work.c index 4be1238..2ae55a2 100644 --- a/src/work.c +++ b/src/work.c @@ -465,7 +465,12 @@ compute_pos(const char8_t *p, pos_state_t *ps) unsigned char c = *ps->buf.p; if (__builtin_expect(isascii(c), 1)) { /* ASCII fast path */ ps->buf.p++; - if (c == '\r' || c == '\n' || c == '\v' || c == '\f') { + if (c == '\n' || c == '\v' || c == '\f') { + ps->row++; + ps->col = 0; + } else if (c == '\r') { + if (ps->buf.p < p && *ps->buf.p == '\n') + ps->buf.p++; ps->row++; ps->col = 0; } else if (c == '\t') -- cgit v1.2.3