From: Michael D. Lowis Date: Tue, 20 Dec 2016 23:02:06 +0000 (-0500) Subject: Fixed broken backspace code X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=00f714f13b16a4a30c0ba42be8f9fd8a606c84e5;p=projs%2Ftide.git Fixed broken backspace code --- diff --git a/TODO.md b/TODO.md index 59c26a7..b23852e 100644 --- a/TODO.md +++ b/TODO.md @@ -37,10 +37,6 @@ Need to reproduce: * Display line location and num lines in status -# Command Language - -* Implement a Sam/Acme-like command language - # Maybe Someday Features * Implement fuse file-system backend? diff --git a/libedit/view.c b/libedit/view.c index c993a6d..fa9e471 100644 --- a/libedit/view.c +++ b/libedit/view.c @@ -124,7 +124,7 @@ static unsigned scroll_dn(View* view) { static void sync_center(View* view, size_t csr) { /* determine the screenline containing the cursor */ - size_t scrln = 0; + size_t scrln = 0; for (; scrln < view->nrows; scrln++) { unsigned first = view->rows[scrln]->off; unsigned last = first + view->rows[scrln]->rlen - 1; @@ -430,7 +430,7 @@ void view_delete(View* view, int dir, bool byword) { if (num != 0) sel.end = buf_delete(&(view->buffer), sel.beg, sel.end); else if ((dir == LEFT) && (sel.end > 0)) - sel.end = buf_delete(&(view->buffer), --sel.end, sel.end); + sel.end = buf_delete(&(view->buffer), sel.end-1, sel.end); else if ((dir == RIGHT) && (sel.end < buf_end(&(view->buffer)))) sel.end = buf_delete(&(view->buffer), sel.end, sel.end+1); sel.beg = sel.end; diff --git a/xpick.c b/xpick.c index dc38ec9..63367ed 100644 --- a/xpick.c +++ b/xpick.c @@ -180,8 +180,9 @@ static void keyboard_input(int mods, uint32_t key) { x11_deinit(); break; case '\b': - if (Pos > 0) - buf_delete(&Query, --Pos, Pos); + if (Pos > 0) { + Pos = buf_delete(&Query, Pos-1, Pos); + } break; case RUNE_ERR: break;