aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/work.c7
1 files changed, 6 insertions, 1 deletions
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')