]> git.mdlowis.com Git - projs/tide.git/commitdiff
Fixed broken backspace code
authorMichael D. Lowis <mike@mdlowis.com>
Tue, 20 Dec 2016 23:02:06 +0000 (18:02 -0500)
committerMichael D. Lowis <mike@mdlowis.com>
Tue, 20 Dec 2016 23:02:06 +0000 (18:02 -0500)
TODO.md
libedit/view.c
xpick.c

diff --git a/TODO.md b/TODO.md
index 59c26a7fb74a1d33f946933f78d3c4c0a2d73aa1..b23852ee2cc2fc412cb1b721f7a09e4cdd03dfe2 100644 (file)
--- 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?
index c993a6d5dfb181032992a357868f1c5b02921562..fa9e4717d3e2342adc66f9cdd28dde520fc69737 100644 (file)
@@ -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 dc38ec9ddea4ff1370683ac3ff552155e5af3233..63367ed75a26a764757aa507be11ccb37f180412 100644 (file)
--- 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;