diff --git a/src/input.c b/src/input.c index b061b7a..97b2543 100644 --- a/src/input.c +++ b/src/input.c @@ -66,13 +66,11 @@ static void input_backspace(ToxWindow *self, int x, int mx_x) return; } - int cur_len = wcwidth(ctx->line[ctx->pos]); - int s_len = wcwidth(ctx->line[ctx->start]); + int cur_len = ctx->pos > 0 ? wcwidth(ctx->line[ctx->pos - 1]) : 0; + int s_len = ctx->start > 0 ? wcwidth(ctx->line[ctx->start - 1]) : 0; if (ctx->start && (x >= mx_x - cur_len)) ctx->start = MAX(0, ctx->start - 1 + (s_len - cur_len)); - else if (ctx->start && (ctx->pos == ctx->len)) - ctx->start = MAX(0, ctx->start - cur_len); else if (ctx->start) ctx->start = MAX(0, ctx->start - cur_len); }